diff options
| author | Carlos Martín Nieto <carlos@cmartin.tk> | 2012-02-25 19:00:58 +0100 |
|---|---|---|
| committer | Carlos Martín Nieto <carlos@cmartin.tk> | 2012-02-25 19:01:02 +0100 |
| commit | 6b63589e3512cb8ad895dcac8482850c2f256f29 (patch) | |
| tree | 4bbdb7290cd521b1c30f9ae692a1d4156f5c21c6 /tests-clar | |
| parent | 0a43d7cb19bb229688bec6acececed159e5d0648 (diff) | |
| download | libgit2-6b63589e3512cb8ad895dcac8482850c2f256f29.tar.gz | |
config: add more comprehensive multivar tests
Diffstat (limited to 'tests-clar')
| -rw-r--r-- | tests-clar/config/multivar.c | 82 |
1 files changed, 69 insertions, 13 deletions
diff --git a/tests-clar/config/multivar.c b/tests-clar/config/multivar.c index 4cf5a37d6..bccdc1289 100644 --- a/tests-clar/config/multivar.c +++ b/tests-clar/config/multivar.c @@ -1,10 +1,22 @@ #include "clar_libgit2.h" +static const char *_name = "remote.fancy.url"; + +void test_config_multivar__initialize(void) +{ + cl_fixture_sandbox("config"); +} + +void test_config_multivar__cleanup(void) +{ + cl_fixture_cleanup("config"); +} + static int mv_read_cb(const char *name, const char *GIT_UNUSED(value), void *data) { int *n = (int *) data; - if (!strcmp(name, "remote.fancy.url")) + if (!strcmp(name, _name)) (*n)++; return 0; @@ -35,17 +47,16 @@ static int cb(const char *GIT_UNUSED(val), void *data) void test_config_multivar__get(void) { git_config *cfg; - const char *name = "remote.fancy.url"; int n; - cl_git_pass(git_config_open_ondisk(&cfg, cl_fixture("config/config11"))); + cl_git_pass(git_config_open_ondisk(&cfg, "config/config11")); n = 0; - cl_git_pass(git_config_get_multivar(cfg, name, NULL, cb, &n)); + cl_git_pass(git_config_get_multivar(cfg, _name, NULL, cb, &n)); cl_assert(n == 2); n = 0; - cl_git_pass(git_config_get_multivar(cfg, name, "example", cb, &n)); + cl_git_pass(git_config_get_multivar(cfg, _name, "example", cb, &n)); cl_assert(n == 1); git_config_free(cfg); @@ -54,19 +65,17 @@ void test_config_multivar__get(void) void test_config_multivar__add(void) { git_config *cfg; - const char *name = "remote.fancy.url"; int n; - cl_fixture_sandbox("config"); cl_git_pass(git_config_open_ondisk(&cfg, "config/config11")); - cl_git_pass(git_config_set_multivar(cfg, name, "^$", "git://git.otherplace.org/libgit2")); + cl_git_pass(git_config_set_multivar(cfg, _name, "nonexistant", "git://git.otherplace.org/libgit2")); n = 0; - cl_git_pass(git_config_get_multivar(cfg, name, NULL, cb, &n)); + cl_git_pass(git_config_get_multivar(cfg, _name, NULL, cb, &n)); cl_assert(n == 3); n = 0; - cl_git_pass(git_config_get_multivar(cfg, name, "otherplace", cb, &n)); + cl_git_pass(git_config_get_multivar(cfg, _name, "otherplace", cb, &n)); cl_assert(n == 1); git_config_free(cfg); @@ -76,13 +85,60 @@ void test_config_multivar__add(void) cl_git_pass(git_config_open_ondisk(&cfg, "config/config11")); n = 0; - cl_git_pass(git_config_get_multivar(cfg, name, NULL, cb, &n)); + cl_git_pass(git_config_get_multivar(cfg, _name, NULL, cb, &n)); cl_assert(n == 3); - n = 0; - cl_git_pass(git_config_get_multivar(cfg, name, "otherplace", cb, &n)); + cl_git_pass(git_config_get_multivar(cfg, _name, "otherplace", cb, &n)); cl_assert(n == 1); git_config_free(cfg); } + +void test_config_multivar__replace(void) +{ + git_config *cfg; + int n; + + cl_git_pass(git_config_open_ondisk(&cfg, "config/config11")); + + n = 0; + cl_git_pass(git_config_get_multivar(cfg, _name, NULL, cb, &n)); + cl_assert(n == 2); + + cl_git_pass(git_config_set_multivar(cfg, _name, "github", "git://git.otherplace.org/libgit2")); + + n = 0; + cl_git_pass(git_config_get_multivar(cfg, _name, NULL, cb, &n)); + cl_assert(n == 2); + + git_config_free(cfg); + + cl_git_pass(git_config_open_ondisk(&cfg, "config/config11")); + + n = 0; + cl_git_pass(git_config_get_multivar(cfg, _name, NULL, cb, &n)); + cl_assert(n == 2); +} + +void test_config_multivar__replace_multiple(void) +{ + git_config *cfg; + int n; + + cl_git_pass(git_config_open_ondisk(&cfg, "config/config11")); + cl_git_pass(git_config_set_multivar(cfg, _name, "git://", "git://git.otherplace.org/libgit2")); + + n = 0; + cl_git_pass(git_config_get_multivar(cfg, _name, "otherplace", cb, &n)); + cl_assert(n == 2); + + git_config_free(cfg); + + cl_git_pass(git_config_open_ondisk(&cfg, "config/config11")); + + n = 0; + cl_git_pass(git_config_get_multivar(cfg, _name, "otherplace", cb, &n)); + cl_assert(n == 2); + +} |
