diff options
author | Libor Pechacek <lpechacek@suse.cz> | 2011-01-30 20:40:41 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-02-22 15:19:45 -0800 |
commit | b09c53a3e331211fc0154de8ebb271e48f8c7ee5 (patch) | |
tree | 341eeb6f6252abd6bf0d5415efe2afcffc3d4c52 /t/t1300-repo-config.sh | |
parent | 597a63054241c122515c93cbce45bc44eb231f18 (diff) | |
download | git-b09c53a3e331211fc0154de8ebb271e48f8c7ee5.tar.gz |
Sanity-check config variable names
Sanity-check config variable names when adding and retrieving them. As a side
effect code duplication between git_config_set_multivar and get_value (in
builtin/config.c) was removed and the common functionality was placed in
git_config_parse_key.
This breaks a test in t1300 which used invalid section-less keys in the tests
for "git -c". However, allowing such names there was useless, since there was
no way to set them via config file, and no part of git actually tried to use
section-less keys. This patch updates the test to use more realistic examples
as well as adding its own test.
Signed-off-by: Libor Pechacek <lpechacek@suse.cz>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t1300-repo-config.sh')
-rwxr-xr-x | t/t1300-repo-config.sh | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/t/t1300-repo-config.sh b/t/t1300-repo-config.sh index d0e55465ff..c3d91d10a0 100755 --- a/t/t1300-repo-config.sh +++ b/t/t1300-repo-config.sh @@ -876,11 +876,21 @@ test_expect_success 'check split_cmdline return' " " test_expect_success 'git -c "key=value" support' ' - test "z$(git -c name=value config name)" = zvalue && test "z$(git -c core.name=value config core.name)" = zvalue && - test "z$(git -c CamelCase=value config camelcase)" = zvalue && - test "z$(git -c flag config --bool flag)" = ztrue && - test_must_fail git -c core.name=value config name + test "z$(git -c foo.CamelCase=value config foo.camelcase)" = zvalue && + test "z$(git -c foo.flag config --bool foo.flag)" = ztrue && + test_must_fail git -c name=value config core.name +' + +test_expect_success 'key sanity-checking' ' + test_must_fail git config foo=bar && + test_must_fail git config foo=.bar && + test_must_fail git config foo.ba=r && + test_must_fail git config foo.1bar && + test_must_fail git config foo."ba + z".bar && + git config foo.bar true && + git config foo."ba =z".bar false ' test_done |