Code

Introduce sane_unset and use it to ensure proper && chaining
[git.git] / t / t1303-wacky-config.sh
index 99985dcd79f12d680c51e8f64d61c47a70b43f36..080117c6bcbb61078539f36011ecd62780bae305 100755 (executable)
@@ -10,8 +10,8 @@ setup() {
 
 check() {
        echo "$2" >expected
-       git config --get "$1" >actual
-       git diff actual expected
+       git config --get "$1" >actual 2>&1
+       test_cmp actual expected
 }
 
 test_expect_success 'modify same key' '
@@ -34,4 +34,17 @@ test_expect_success 'add key in different section' '
        check section2.key bar
 '
 
+SECTION="test.q\"s\\sq'sp e.key"
+test_expect_success 'make sure git config escapes section names properly' '
+       git config "$SECTION" bar &&
+       check "$SECTION" bar
+'
+
+LONG_VALUE=$(printf "x%01021dx a" 7)
+test_expect_success 'do not crash on special long config line' '
+       setup &&
+       git config section.key "$LONG_VALUE" &&
+       check section.key "fatal: bad config file line 2 in .git/config"
+'
+
 test_done