Fix tests breaking when checkout path contains shell metacharacters
[gitweb.git] / t / t3902-quoted.sh
index 63f950b179586b2f8f7bf8d3695262795d546465..fe4fb5116ac4c482c357f0af3f0a34da27cee237 100755 (executable)
@@ -7,6 +7,12 @@ test_description='quoted output'
 
 . ./test-lib.sh
 
+P1='pathname   with HT'
+: >"$P1" 2>&1 && test -f "$P1" && rm -f "$P1" || {
+       echo >&2 'Filesystem does not support HT in names'
+       test_done
+}
+
 FN='濱野'
 GN='純'
 HT='   '
@@ -14,6 +20,13 @@ LF='
 '
 DQ='"'
 
+echo foo > "Name and an${HT}HT"
+test -f "Name and an${HT}HT" || {
+       # since FAT/NTFS does not allow tabs in filenames, skip this test
+       say 'Your filesystem does not allow tabs in filenames, test skipped.'
+       test_done
+}
+
 for_each_name () {
        for name in \
            Name "Name and a${LF}LF" "Name and an${HT}HT" "Name${DQ}" \
@@ -65,28 +78,28 @@ EOF
 
 test_expect_success 'check fully quoted output from ls-files' '
 
-       git ls-files >current && diff -u expect.quoted current
+       git ls-files >current && test_cmp expect.quoted current
 
 '
 
 test_expect_success 'check fully quoted output from diff-files' '
 
        git diff --name-only >current &&
-       diff -u expect.quoted current
+       test_cmp expect.quoted current
 
 '
 
 test_expect_success 'check fully quoted output from diff-index' '
 
        git diff --name-only HEAD >current &&
-       diff -u expect.quoted current
+       test_cmp expect.quoted current
 
 '
 
 test_expect_success 'check fully quoted output from diff-tree' '
 
        git diff --name-only HEAD^ HEAD >current &&
-       diff -u expect.quoted current
+       test_cmp expect.quoted current
 
 '
 
@@ -98,28 +111,28 @@ test_expect_success 'setting core.quotepath' '
 
 test_expect_success 'check fully quoted output from ls-files' '
 
-       git ls-files >current && diff -u expect.raw current
+       git ls-files >current && test_cmp expect.raw current
 
 '
 
 test_expect_success 'check fully quoted output from diff-files' '
 
        git diff --name-only >current &&
-       diff -u expect.raw current
+       test_cmp expect.raw current
 
 '
 
 test_expect_success 'check fully quoted output from diff-index' '
 
        git diff --name-only HEAD >current &&
-       diff -u expect.raw current
+       test_cmp expect.raw current
 
 '
 
 test_expect_success 'check fully quoted output from diff-tree' '
 
        git diff --name-only HEAD^ HEAD >current &&
-       diff -u expect.raw current
+       test_cmp expect.raw current
 
 '