config: test saving config to new file

This commit is contained in:
Carlos Martín Nieto 2011-11-26 02:00:18 +01:00
parent 4e90a0a4a0
commit 533fda3b83
3 changed files with 48 additions and 2 deletions

View File

@ -59,6 +59,7 @@ void cl_fixture_cleanup(const char *fixture_name);
*/
extern void test_buf_basic__printf(void);
extern void test_buf_basic__resize(void);
extern void test_config_new__write_new_config(void);
extern void test_config_stress__cleanup(void);
extern void test_config_stress__dont_break_on_invalid_input(void);
extern void test_config_stress__initialize(void);

View File

@ -108,6 +108,9 @@ static const struct clay_func _clay_cb_buf_basic[] = {
{"printf", &test_buf_basic__printf},
{"resize", &test_buf_basic__resize}
};
static const struct clay_func _clay_cb_config_new[] = {
{"write_new_config", &test_config_new__write_new_config}
};
static const struct clay_func _clay_cb_config_stress[] = {
{"dont_break_on_invalid_input", &test_config_stress__dont_break_on_invalid_input}
};
@ -227,6 +230,12 @@ static const struct clay_suite _clay_suites[] = {
{NULL, NULL},
{NULL, NULL},
_clay_cb_buf_basic, 2
},
{
"config::new",
{NULL, NULL},
{NULL, NULL},
_clay_cb_config_new, 1
},
{
"config::stress",
@ -362,8 +371,8 @@ static const struct clay_suite _clay_suites[] = {
}
};
static size_t _clay_suite_count = 23;
static size_t _clay_callback_count = 70;
static size_t _clay_suite_count = 24;
static size_t _clay_callback_count = 71;
/* Core test functions */
static void

36
tests-clay/config/new.c Normal file
View File

@ -0,0 +1,36 @@
#include "clay_libgit2.h"
#include "filebuf.h"
#include "fileops.h"
#include "posix.h"
#define TEST_CONFIG "git-new-config"
void test_config_new__write_new_config(void)
{
const char *out;
struct git_config_file *file;
git_config *config;
cl_git_pass(git_config_file__ondisk(&file, TEST_CONFIG));
cl_git_pass(git_config_new(&config));
cl_git_pass(git_config_add_file(config, file, 0));
cl_git_pass(git_config_set_string(config, "color.ui", "auto"));
cl_git_pass(git_config_set_string(config, "core.editor", "ed"));
git_config_free(config);
cl_git_pass(git_config_file__ondisk(&file, TEST_CONFIG));
cl_git_pass(git_config_new(&config));
cl_git_pass(git_config_add_file(config, file, 0));
cl_git_pass(git_config_get_string(config, "color.ui", &out));
cl_assert(strcmp(out, "auto") == 0);
cl_git_pass(git_config_get_string(config, "core.editor", &out));
cl_assert(strcmp(out, "ed") == 0);
git_config_free(config);
p_unlink(TEST_CONFIG);
}