mirror of
https://github.com/git/git
synced 2024-08-27 11:39:22 +00:00
![Johannes Schindelin](/assets/img/avatar_default.png)
MSYS2 actually allows to create files or directories whose names contain tabs, newlines or colors, even if plain Win32 API cannot access them. As we are using an MSYS2 bash to run the tests, such files or directories are created successfully, but Git itself has no chance to work with them because it is a regular Windows program, hence limited by the Win32 API. With this change, on Windows otherwise failing tests in t3300-funny-names.sh, t3600-rm.sh, t3703-add-magic-pathspec.sh, t3902-quoted.sh, t4016-diff-quote.sh, t4135-apply-weird-filenames.sh, t9200-git-cvsexportcommit.sh, and t9903-bash-prompt.sh are skipped. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
89 lines
2.3 KiB
Bash
Executable file
89 lines
2.3 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'
|
|
test_have_prereq !MINGW &&
|
|
echo 2>/dev/null >"$P1" && test -f "$P1" && rm -f "$P1" || {
|
|
skip_all='Your filesystem does not allow tabs in filenames'
|
|
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" &&
|
|
:
|
|
'
|
|
|
|
test_expect_success 'setup expected files' '
|
|
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
|
|
'
|
|
|
|
test_expect_success 'git diff --numstat -M HEAD' '
|
|
cat >expect <<-\EOF &&
|
|
0 0 pathname.1 => "Rpathname\twith HT.0"
|
|
0 0 pathname.3 => "Rpathname\nwith LF.0"
|
|
0 0 "pathname\twith HT.3" => "Rpathname\nwith LF.1"
|
|
0 0 pathname.2 => Rpathname with SP.0
|
|
0 0 "pathname\twith HT.2" => Rpathname with SP.1
|
|
0 0 pathname.0 => Rpathname.0
|
|
0 0 "pathname\twith HT.0" => Rpathname.1
|
|
EOF
|
|
git diff --numstat -M HEAD >actual &&
|
|
test_cmp expect actual
|
|
'
|
|
|
|
test_expect_success 'git diff --stat -M HEAD' '
|
|
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
|
|
git diff --stat -M HEAD >actual &&
|
|
test_i18ncmp expect actual
|
|
'
|
|
|
|
test_done
|