#include "clar_libgit2.h" #include "config.h" static git_config *cfg; void test_config_validkeyname__initialize(void) { cl_fixture_sandbox("config/config10"); cl_git_pass(git_config_open_ondisk(&cfg, "config10")); } void test_config_validkeyname__cleanup(void) { git_config_free(cfg); cfg = NULL; cl_fixture_cleanup("config10"); } static void assert_invalid_config_key_name(const char *name) { git_buf buf = GIT_BUF_INIT; cl_git_fail_with(git_config_get_string_buf(&buf, cfg, name), GIT_EINVALIDSPEC); cl_git_fail_with(git_config_set_string(cfg, name, "42"), GIT_EINVALIDSPEC); cl_git_fail_with(git_config_delete_entry(cfg, name), GIT_EINVALIDSPEC); cl_git_fail_with(git_config_get_multivar_foreach(cfg, name, "*", NULL, NULL), GIT_EINVALIDSPEC); cl_git_fail_with(git_config_set_multivar(cfg, name, "*", "42"), GIT_EINVALIDSPEC); } void test_config_validkeyname__accessing_requires_a_valid_name(void) { assert_invalid_config_key_name(""); assert_invalid_config_key_name("."); assert_invalid_config_key_name(".."); assert_invalid_config_key_name("core."); assert_invalid_config_key_name("d#ff.dirstat.lines"); assert_invalid_config_key_name("diff.dirstat.lines#"); assert_invalid_config_key_name("dif\nf.dirstat.lines"); assert_invalid_config_key_name("dif.dir\nstat.lines"); assert_invalid_config_key_name("dif.dirstat.li\nes"); }