]> git.proxmox.com Git - libgit2.git/commitdiff
config: document current write behaviour in a test
authorCarlos Martín Nieto <cmn@dwim.me>
Thu, 6 Mar 2014 14:11:11 +0000 (15:11 +0100)
committerCarlos Martín Nieto <cmn@dwim.me>
Fri, 18 Apr 2014 13:55:25 +0000 (15:55 +0200)
On set, we set/add the value written to the config's internal values,
but we do not refresh old values.

Document this in a test in preparation for the refresh changes.

tests/config/write.c

index 922d7555774ecb07cbc5c73767e91c29d02521a9..f269c95718259c0799c2cb7f7390df1c3454275a 100644 (file)
@@ -304,3 +304,30 @@ void test_config_write__updating_a_locked_config_file_returns_ELOCKED(void)
        git_config_free(cfg);
 }
 
+void test_config_write__outside_change(void)
+{
+       int32_t tmp;
+       git_config *cfg;
+       const char *filename = "config-ext-change";
+
+       cl_git_mkfile(filename, "[old]\nvalue = 5\n");
+
+       cl_git_pass(git_config_open_ondisk(&cfg, filename));
+
+       cl_git_pass(git_config_get_int32(&tmp, cfg, "old.value"));
+
+       /* Change the value on the file itself (simulate external process) */
+       cl_git_mkfile(filename, "[old]\nvalue = 6\n");
+
+       cl_git_pass(git_config_set_int32(cfg, "new.value", 7));
+
+       cl_git_pass(git_config_get_int32(&tmp, cfg, "old.value"));
+       cl_assert_equal_i(5, tmp);
+
+       cl_git_pass(git_config_refresh(cfg));
+
+       cl_git_pass(git_config_get_int32(&tmp, cfg, "old.value"));
+       cl_assert_equal_i(6, tmp);
+
+       git_config_free(cfg);
+}