2b84373219
In particular, when testing if the filesystem allows tabs in filenames, bash issues an error something like: ./t4016-diff-quote.sh: pathname with HT: No such file or directory which is caused by the failure of the (stdout) redirection, since the file cannot be created. In order to suppress the error message, you must redirect stderr to /dev/null, *before* the stdout redirection on the command-line. Also, remove a redundant filesystem check from the begining of the t3902-quoted.sh test and standardise the "test skipped" message to 'say' on exit. Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
71 lines
1.8 KiB
Bash
Executable File
71 lines
1.8 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Copyright (c) 2007 Junio C Hamano
|
|
#
|
|
|
|
test_description='Quoting paths in diff output.
|
|
'
|
|
|
|
. ./test-lib.sh
|
|
|
|
P0='pathname'
|
|
P1='pathname with HT'
|
|
P2='pathname with SP'
|
|
P3='pathname
|
|
with LF'
|
|
: 2>/dev/null >"$P1" && test -f "$P1" && rm -f "$P1" || {
|
|
say 'Your filesystem does not allow tabs in filenames, test skipped.'
|
|
test_done
|
|
}
|
|
|
|
test_expect_success setup '
|
|
echo P0.0 >"$P0.0" &&
|
|
echo P0.1 >"$P0.1" &&
|
|
echo P0.2 >"$P0.2" &&
|
|
echo P0.3 >"$P0.3" &&
|
|
echo P1.0 >"$P1.0" &&
|
|
echo P1.2 >"$P1.2" &&
|
|
echo P1.3 >"$P1.3" &&
|
|
git add . &&
|
|
git commit -m initial &&
|
|
git mv "$P0.0" "R$P0.0" &&
|
|
git mv "$P0.1" "R$P1.0" &&
|
|
git mv "$P0.2" "R$P2.0" &&
|
|
git mv "$P0.3" "R$P3.0" &&
|
|
git mv "$P1.0" "R$P0.1" &&
|
|
git mv "$P1.2" "R$P2.1" &&
|
|
git mv "$P1.3" "R$P3.1" &&
|
|
:
|
|
'
|
|
|
|
cat >expect <<\EOF
|
|
rename pathname.1 => "Rpathname\twith HT.0" (100%)
|
|
rename pathname.3 => "Rpathname\nwith LF.0" (100%)
|
|
rename "pathname\twith HT.3" => "Rpathname\nwith LF.1" (100%)
|
|
rename pathname.2 => Rpathname with SP.0 (100%)
|
|
rename "pathname\twith HT.2" => Rpathname with SP.1 (100%)
|
|
rename pathname.0 => Rpathname.0 (100%)
|
|
rename "pathname\twith HT.0" => Rpathname.1 (100%)
|
|
EOF
|
|
test_expect_success 'git diff --summary -M HEAD' '
|
|
git diff --summary -M HEAD >actual &&
|
|
test_cmp expect actual
|
|
'
|
|
|
|
cat >expect <<\EOF
|
|
pathname.1 => "Rpathname\twith HT.0" | 0
|
|
pathname.3 => "Rpathname\nwith LF.0" | 0
|
|
"pathname\twith HT.3" => "Rpathname\nwith LF.1" | 0
|
|
pathname.2 => Rpathname with SP.0 | 0
|
|
"pathname\twith HT.2" => Rpathname with SP.1 | 0
|
|
pathname.0 => Rpathname.0 | 0
|
|
"pathname\twith HT.0" => Rpathname.1 | 0
|
|
7 files changed, 0 insertions(+), 0 deletions(-)
|
|
EOF
|
|
test_expect_success 'git diff --stat -M HEAD' '
|
|
git diff --stat -M HEAD >actual &&
|
|
test_cmp expect actual
|
|
'
|
|
|
|
test_done
|