diff options
author | Michael Schubert <schu@schu.io> | 2012-10-24 15:46:15 +0200 |
---|---|---|
committer | Michael Schubert <schu@schu.io> | 2012-10-24 15:46:15 +0200 |
commit | ab2af775ec467ebb328a7374653f247920f258f3 (patch) | |
tree | dfcb09fadc67bc28a99bffcb8b751d426024974c /tests-clar/config/configlevel.c | |
parent | 90fefe87d87b08010a1ea10ae496a4b0ee630f5e (diff) | |
parent | 6f6b0c013c6eff2aca2a7ada1027044f2e20f578 (diff) | |
download | libgit2-features/push_old.tar.gz |
Merge branch 'development' into gsoc-pushfeatures/push_old
Diffstat (limited to 'tests-clar/config/configlevel.c')
-rw-r--r-- | tests-clar/config/configlevel.c | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/tests-clar/config/configlevel.c b/tests-clar/config/configlevel.c new file mode 100644 index 000000000..d947856fa --- /dev/null +++ b/tests-clar/config/configlevel.c @@ -0,0 +1,59 @@ +#include "clar_libgit2.h" + +void test_config_configlevel__adding_the_same_level_twice_returns_EEXISTS(void) +{ + int error; + git_config *cfg; + + cl_git_pass(git_config_new(&cfg)); + cl_git_pass(git_config_add_file_ondisk(cfg, cl_fixture("config/config9"), + GIT_CONFIG_LEVEL_LOCAL, 0)); + cl_git_pass(git_config_add_file_ondisk(cfg, cl_fixture("config/config15"), + GIT_CONFIG_LEVEL_GLOBAL, 0)); + error = git_config_add_file_ondisk(cfg, cl_fixture("config/config16"), + GIT_CONFIG_LEVEL_GLOBAL, 0); + + cl_git_fail(error); + cl_assert_equal_i(GIT_EEXISTS, error); + + git_config_free(cfg); +} + +void test_config_configlevel__can_replace_a_config_file_at_an_existing_level(void) +{ + git_config *cfg; + const char *s; + + cl_git_pass(git_config_new(&cfg)); + cl_git_pass(git_config_add_file_ondisk(cfg, cl_fixture("config/config18"), + GIT_CONFIG_LEVEL_LOCAL, 1)); + cl_git_pass(git_config_add_file_ondisk(cfg, cl_fixture("config/config19"), + GIT_CONFIG_LEVEL_LOCAL, 1)); + + cl_git_pass(git_config_get_string(&s, cfg, "core.stringglobal")); + cl_assert_equal_s("don't find me!", s); + + git_config_free(cfg); +} + +void test_config_configlevel__can_read_from_a_single_level_focused_file_after_parent_config_has_been_freed(void) +{ + git_config *cfg; + git_config *single_level_cfg; + const char *s; + + cl_git_pass(git_config_new(&cfg)); + cl_git_pass(git_config_add_file_ondisk(cfg, cl_fixture("config/config18"), + GIT_CONFIG_LEVEL_GLOBAL, 0)); + cl_git_pass(git_config_add_file_ondisk(cfg, cl_fixture("config/config19"), + GIT_CONFIG_LEVEL_LOCAL, 0)); + + cl_git_pass(git_config_open_level(&single_level_cfg, cfg, GIT_CONFIG_LEVEL_LOCAL)); + + git_config_free(cfg); + + cl_git_pass(git_config_get_string(&s, single_level_cfg, "core.stringglobal")); + cl_assert_equal_s("don't find me!", s); + + git_config_free(single_level_cfg); +} |