mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-28 02:16:21 +00:00
config: add failing test for an external modification
We currently use the timestamp in order to decide whether a config file has changed since we last read it. This scheme falls down if the file is written twice within the same second, as we fail to detect the file change after the first read in that second.
This commit is contained in:
parent
d571a54e60
commit
a2f96479ab
@ -107,3 +107,23 @@ void test_config_stress__complex(void)
|
||||
|
||||
git_config_free(config);
|
||||
}
|
||||
|
||||
void test_config_stress__quick_write(void)
|
||||
{
|
||||
git_config *config_w, *config_r;
|
||||
const char *path = "./config-quick-write";
|
||||
const char *key = "quick.write";
|
||||
int32_t i;
|
||||
|
||||
/* Create an external writer for one instance with the other one */
|
||||
cl_git_pass(git_config_open_ondisk(&config_w, path));
|
||||
cl_git_pass(git_config_open_ondisk(&config_r, path));
|
||||
|
||||
/* Write and read in the same second (repeat to increase the chance of it happening) */
|
||||
for (i = 0; i < 10; i++) {
|
||||
int32_t val;
|
||||
cl_git_pass(git_config_set_int32(config_w, key, i));
|
||||
cl_git_pass(git_config_get_int32(&val, config_r, key));
|
||||
cl_assert_equal_i(i, val);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user