2007-06-25 00:11:24 +02:00
|
|
|
#!/bin/sh
|
|
|
|
#
|
|
|
|
# Copyright (c) 2006 Junio C Hamano
|
|
|
|
#
|
|
|
|
|
|
|
|
test_description='quoted output'
|
|
|
|
|
2021-10-12 15:56:44 +02:00
|
|
|
TEST_PASSES_SANITIZE_LEAK=true
|
2007-06-25 00:11:24 +02:00
|
|
|
. ./test-lib.sh
|
|
|
|
|
|
|
|
FN='濱野'
|
|
|
|
GN='純'
|
|
|
|
HT=' '
|
|
|
|
DQ='"'
|
|
|
|
|
mingw: do not bother to test funny file names
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>
2016-01-27 17:20:26 +01:00
|
|
|
test_have_prereq MINGW ||
|
2008-08-26 19:52:57 +02:00
|
|
|
echo foo 2>/dev/null > "Name and an${HT}HT"
|
2010-08-11 21:04:09 +02:00
|
|
|
if ! test -f "Name and an${HT}HT"
|
|
|
|
then
|
|
|
|
# FAT/NTFS does not allow tabs in filenames
|
2012-09-01 20:10:01 +02:00
|
|
|
skip_all='Your filesystem does not allow tabs in filenames'
|
|
|
|
test_done
|
2010-08-11 21:04:09 +02:00
|
|
|
fi
|
2007-11-13 21:04:59 +01:00
|
|
|
|
2007-06-25 00:11:24 +02:00
|
|
|
for_each_name () {
|
|
|
|
for name in \
|
|
|
|
Name "Name and a${LF}LF" "Name and an${HT}HT" "Name${DQ}" \
|
|
|
|
"$FN$HT$GN" "$FN$LF$GN" "$FN $GN" "$FN$GN" "$FN$DQ$GN" \
|
2010-02-09 05:07:25 +01:00
|
|
|
"With SP in it" "$FN/file"
|
2007-06-25 00:11:24 +02:00
|
|
|
do
|
|
|
|
eval "$1"
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
2012-09-01 20:10:01 +02:00
|
|
|
test_expect_success 'setup' '
|
2007-06-25 00:11:24 +02:00
|
|
|
|
2010-02-09 05:07:25 +01:00
|
|
|
mkdir "$FN" &&
|
2010-10-31 02:46:54 +01:00
|
|
|
for_each_name "echo initial >\"\$name\"" &&
|
2007-06-25 00:11:24 +02:00
|
|
|
git add . &&
|
|
|
|
git commit -q -m Initial &&
|
|
|
|
|
|
|
|
for_each_name "echo second >\"\$name\"" &&
|
2010-10-31 02:46:54 +01:00
|
|
|
git commit -a -m Second &&
|
2007-06-25 00:11:24 +02:00
|
|
|
|
|
|
|
for_each_name "echo modified >\"\$name\""
|
|
|
|
|
|
|
|
'
|
|
|
|
|
2012-09-01 20:10:01 +02:00
|
|
|
test_expect_success 'setup expected files' '
|
2010-10-31 02:46:54 +01:00
|
|
|
cat >expect.quoted <<\EOF &&
|
2007-06-25 00:11:24 +02:00
|
|
|
Name
|
|
|
|
"Name and a\nLF"
|
|
|
|
"Name and an\tHT"
|
|
|
|
"Name\""
|
|
|
|
With SP in it
|
|
|
|
"\346\277\261\351\207\216\t\347\264\224"
|
|
|
|
"\346\277\261\351\207\216\n\347\264\224"
|
|
|
|
"\346\277\261\351\207\216 \347\264\224"
|
|
|
|
"\346\277\261\351\207\216\"\347\264\224"
|
2010-02-09 05:07:25 +01:00
|
|
|
"\346\277\261\351\207\216/file"
|
2007-06-25 00:11:24 +02:00
|
|
|
"\346\277\261\351\207\216\347\264\224"
|
|
|
|
EOF
|
|
|
|
|
|
|
|
cat >expect.raw <<\EOF
|
|
|
|
Name
|
|
|
|
"Name and a\nLF"
|
|
|
|
"Name and an\tHT"
|
|
|
|
"Name\""
|
|
|
|
With SP in it
|
|
|
|
"濱野\t純"
|
|
|
|
"濱野\n純"
|
|
|
|
濱野 純
|
|
|
|
"濱野\"純"
|
2010-02-09 05:07:25 +01:00
|
|
|
濱野/file
|
2007-06-25 00:11:24 +02:00
|
|
|
濱野純
|
|
|
|
EOF
|
2010-08-11 21:04:09 +02:00
|
|
|
'
|
2007-06-25 00:11:24 +02:00
|
|
|
|
2012-09-01 20:10:01 +02:00
|
|
|
test_expect_success 'check fully quoted output from ls-files' '
|
2007-06-25 00:11:24 +02:00
|
|
|
|
2008-03-12 22:36:36 +01:00
|
|
|
git ls-files >current && test_cmp expect.quoted current
|
2007-06-25 00:11:24 +02:00
|
|
|
|
|
|
|
'
|
|
|
|
|
2012-09-01 20:10:01 +02:00
|
|
|
test_expect_success 'check fully quoted output from diff-files' '
|
2007-06-25 00:11:24 +02:00
|
|
|
|
|
|
|
git diff --name-only >current &&
|
2008-03-12 22:36:36 +01:00
|
|
|
test_cmp expect.quoted current
|
2007-06-25 00:11:24 +02:00
|
|
|
|
|
|
|
'
|
|
|
|
|
2012-09-01 20:10:01 +02:00
|
|
|
test_expect_success 'check fully quoted output from diff-index' '
|
2007-06-25 00:11:24 +02:00
|
|
|
|
|
|
|
git diff --name-only HEAD >current &&
|
2008-03-12 22:36:36 +01:00
|
|
|
test_cmp expect.quoted current
|
2007-06-25 00:11:24 +02:00
|
|
|
|
|
|
|
'
|
|
|
|
|
2012-09-01 20:10:01 +02:00
|
|
|
test_expect_success 'check fully quoted output from diff-tree' '
|
2007-06-25 00:11:24 +02:00
|
|
|
|
|
|
|
git diff --name-only HEAD^ HEAD >current &&
|
2008-03-12 22:36:36 +01:00
|
|
|
test_cmp expect.quoted current
|
2007-06-25 00:11:24 +02:00
|
|
|
|
|
|
|
'
|
|
|
|
|
2012-09-01 20:10:01 +02:00
|
|
|
test_expect_success 'check fully quoted output from ls-tree' '
|
2010-02-01 14:39:03 +01:00
|
|
|
|
|
|
|
git ls-tree --name-only -r HEAD >current &&
|
|
|
|
test_cmp expect.quoted current
|
|
|
|
|
|
|
|
'
|
|
|
|
|
2012-09-01 20:10:01 +02:00
|
|
|
test_expect_success 'setting core.quotepath' '
|
2007-06-25 00:11:24 +02:00
|
|
|
|
|
|
|
git config --bool core.quotepath false
|
|
|
|
|
|
|
|
'
|
|
|
|
|
2012-09-01 20:10:01 +02:00
|
|
|
test_expect_success 'check fully quoted output from ls-files' '
|
2007-06-25 00:11:24 +02:00
|
|
|
|
2008-03-12 22:36:36 +01:00
|
|
|
git ls-files >current && test_cmp expect.raw current
|
2007-06-25 00:11:24 +02:00
|
|
|
|
|
|
|
'
|
|
|
|
|
2012-09-01 20:10:01 +02:00
|
|
|
test_expect_success 'check fully quoted output from diff-files' '
|
2007-06-25 00:11:24 +02:00
|
|
|
|
|
|
|
git diff --name-only >current &&
|
2008-03-12 22:36:36 +01:00
|
|
|
test_cmp expect.raw current
|
2007-06-25 00:11:24 +02:00
|
|
|
|
|
|
|
'
|
|
|
|
|
2012-09-01 20:10:01 +02:00
|
|
|
test_expect_success 'check fully quoted output from diff-index' '
|
2007-06-25 00:11:24 +02:00
|
|
|
|
|
|
|
git diff --name-only HEAD >current &&
|
2008-03-12 22:36:36 +01:00
|
|
|
test_cmp expect.raw current
|
2007-06-25 00:11:24 +02:00
|
|
|
|
|
|
|
'
|
|
|
|
|
2012-09-01 20:10:01 +02:00
|
|
|
test_expect_success 'check fully quoted output from diff-tree' '
|
2007-06-25 00:11:24 +02:00
|
|
|
|
|
|
|
git diff --name-only HEAD^ HEAD >current &&
|
2008-03-12 22:36:36 +01:00
|
|
|
test_cmp expect.raw current
|
2007-06-25 00:11:24 +02:00
|
|
|
|
|
|
|
'
|
|
|
|
|
2012-09-01 20:10:01 +02:00
|
|
|
test_expect_success 'check fully quoted output from ls-tree' '
|
2010-02-01 14:39:03 +01:00
|
|
|
|
|
|
|
git ls-tree --name-only -r HEAD >current &&
|
|
|
|
test_cmp expect.raw current
|
|
|
|
|
|
|
|
'
|
|
|
|
|
2007-06-25 00:11:24 +02:00
|
|
|
test_done
|