git rebase --abort: always restore the right commit
[gitweb.git] / t / t1300-repo-config.sh
index 1d2bf2c06087546503b7272a9547ab8232b017d4..d9e358e1b4d7d64c2347fe0aab4a0b736f82fcf3 100755 (executable)
@@ -71,6 +71,25 @@ EOF
 
 test_expect_success 'non-match result' 'cmp .git/config expect'
 
+cat > .git/config <<\EOF
+[alpha]
+bar = foo
+[beta]
+baz = multiple \
+lines
+EOF
+
+test_expect_success 'unset with cont. lines' \
+       'git config --unset beta.baz'
+
+cat > expect <<\EOF
+[alpha]
+bar = foo
+[beta]
+EOF
+
+test_expect_success 'unset with cont. lines is correct' 'cmp .git/config expect'
+
 cat > .git/config << EOF
 [beta] ; silly comment # another comment
 noIndent= sillyValue ; 'nother silly comment
@@ -278,17 +297,40 @@ test_expect_success '--add' \
 cat > .git/config << EOF
 [novalue]
        variable
+[emptyvalue]
+       variable =
 EOF
 
 test_expect_success 'get variable with no value' \
        'git config --get novalue.variable ^$'
 
+test_expect_success 'get variable with empty value' \
+       'git config --get emptyvalue.variable ^$'
+
 echo novalue.variable > expect
 
 test_expect_success 'get-regexp variable with no value' \
        'git config --get-regexp novalue > output &&
         cmp output expect'
 
+echo 'emptyvalue.variable ' > expect
+
+test_expect_success 'get-regexp variable with empty value' \
+       'git config --get-regexp emptyvalue > output &&
+        cmp output expect'
+
+echo true > expect
+
+test_expect_success 'get bool variable with no value' \
+       'git config --bool novalue.variable > output &&
+        cmp output expect'
+
+echo false > expect
+
+test_expect_success 'get bool variable with empty value' \
+       'git config --bool emptyvalue.variable > output &&
+        cmp output expect'
+
 git config > output 2>&1
 
 test_expect_success 'no arguments, but no crash' \
@@ -448,6 +490,23 @@ test_expect_success numbers '
        test z1048576 = "z$m"
 '
 
+cat > expect <<EOF
+fatal: bad config value for 'aninvalid.unit' in .git/config
+EOF
+
+test_expect_success 'invalid unit' '
+
+       git config aninvalid.unit "1auto" &&
+       s=$(git config aninvalid.unit) &&
+       test "z1auto" = "z$s" &&
+       if git config --int --get aninvalid.unit 2>actual
+       then
+               echo config should have failed
+               false
+       fi &&
+       cmp actual expect
+'
+
 cat > expect << EOF
 true
 false
@@ -591,12 +650,12 @@ Qsection.sub=section.val4
 Qsection.sub=section.val5Q
 EOF
 
-git config --null --list | tr '[\000]' 'Q' > result
+git config --null --list | tr '\000' 'Q' > result
 echo >>result
 
 test_expect_success '--null --list' 'cmp result expect'
 
-git config --null --get-regexp 'val[0-9]' | tr '[\000]' 'Q' > result
+git config --null --get-regexp 'val[0-9]' | tr '\000' 'Q' > result
 echo >>result
 
 test_expect_success '--null --get-regexp' 'cmp result expect'