read_index_from(): catch out of order entries when reading an index file
[gitweb.git] / t / t0008-ignores.sh
index 9e1d64c6ac5ba2d652a7657aca4411da6d5a08aa..39e55a13c885399150094f9a2774f85e0acd63a6 100755 (executable)
@@ -779,21 +779,21 @@ test_expect_success PIPE 'streaming support for --stdin' '
 #
 # test whitespace handling
 
-test_expect_success 'trailing whitespace is warned' '
+test_expect_success 'trailing whitespace is ignored' '
        mkdir whitespace &&
        >whitespace/trailing &&
        >whitespace/untracked &&
        echo "whitespace/trailing   " >ignore &&
        cat >expect <<EOF &&
-whitespace/trailing
 whitespace/untracked
 EOF
+       : >err.expect &&
        git ls-files -o -X ignore whitespace >actual 2>err &&
-       grep "ignore:.*'\''whitespace/trailing   '\''" err &&
-       test_cmp expect actual
+       test_cmp expect actual &&
+       test_cmp err.expect err
 '
 
-test_expect_success 'quoting allows trailing whitespace' '
+test_expect_success !MINGW 'quoting allows trailing whitespace' '
        rm -rf whitespace &&
        mkdir whitespace &&
        >"whitespace/trailing  " &&
@@ -806,4 +806,29 @@ test_expect_success 'quoting allows trailing whitespace' '
        test_cmp err.expect err
 '
 
+test_expect_success NOT_MINGW,NOT_CYGWIN 'correct handling of backslashes' '
+       rm -rf whitespace &&
+       mkdir whitespace &&
+       >"whitespace/trailing 1  " &&
+       >"whitespace/trailing 2 \\\\" &&
+       >"whitespace/trailing 3 \\\\" &&
+       >"whitespace/trailing 4   \\ " &&
+       >"whitespace/trailing 5 \\ \\ " &&
+       >"whitespace/trailing 6 \\a\\" &&
+       >whitespace/untracked &&
+       sed -e "s/Z$//" >ignore <<-\EOF &&
+       whitespace/trailing 1 \    Z
+       whitespace/trailing 2 \\\\Z
+       whitespace/trailing 3 \\\\ Z
+       whitespace/trailing 4   \\\    Z
+       whitespace/trailing 5 \\ \\\   Z
+       whitespace/trailing 6 \\a\\Z
+       EOF
+       echo whitespace/untracked >expect &&
+       >err.expect &&
+       git ls-files -o -X ignore whitespace >actual 2>err &&
+       test_cmp expect actual &&
+       test_cmp err.expect err
+'
+
 test_done