mirror of
https://github.com/git/git
synced 2024-08-24 02:11:08 +00:00
![Ævar Arnfjörð Bjarmason](/assets/img/avatar_default.png)
Mark various "generic" tests as passing when git is compiled with SANITIZE=leak. These tests were subjectively picked from the lists of passing tests since they're all small, and test some generic feature such as wildmatch(), commonly used environment variables, ident parsing etc. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
154 lines
2.8 KiB
Bash
Executable file
154 lines
2.8 KiB
Bash
Executable file
#!/bin/sh
|
|
#
|
|
# Copyright (c) 2006 Junio C Hamano
|
|
#
|
|
|
|
test_description='quoted output'
|
|
|
|
TEST_PASSES_SANITIZE_LEAK=true
|
|
. ./test-lib.sh
|
|
|
|
FN='濱野'
|
|
GN='純'
|
|
HT=' '
|
|
DQ='"'
|
|
|
|
test_have_prereq MINGW ||
|
|
echo foo 2>/dev/null > "Name and an${HT}HT"
|
|
if ! test -f "Name and an${HT}HT"
|
|
then
|
|
# FAT/NTFS does not allow tabs in filenames
|
|
skip_all='Your filesystem does not allow tabs in filenames'
|
|
test_done
|
|
fi
|
|
|
|
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" \
|
|
"With SP in it" "$FN/file"
|
|
do
|
|
eval "$1"
|
|
done
|
|
}
|
|
|
|
test_expect_success 'setup' '
|
|
|
|
mkdir "$FN" &&
|
|
for_each_name "echo initial >\"\$name\"" &&
|
|
git add . &&
|
|
git commit -q -m Initial &&
|
|
|
|
for_each_name "echo second >\"\$name\"" &&
|
|
git commit -a -m Second &&
|
|
|
|
for_each_name "echo modified >\"\$name\""
|
|
|
|
'
|
|
|
|
test_expect_success 'setup expected files' '
|
|
cat >expect.quoted <<\EOF &&
|
|
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"
|
|
"\346\277\261\351\207\216/file"
|
|
"\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純"
|
|
濱野 純
|
|
"濱野\"純"
|
|
濱野/file
|
|
濱野純
|
|
EOF
|
|
'
|
|
|
|
test_expect_success 'check fully quoted output from ls-files' '
|
|
|
|
git ls-files >current && test_cmp expect.quoted current
|
|
|
|
'
|
|
|
|
test_expect_success 'check fully quoted output from diff-files' '
|
|
|
|
git diff --name-only >current &&
|
|
test_cmp expect.quoted current
|
|
|
|
'
|
|
|
|
test_expect_success 'check fully quoted output from diff-index' '
|
|
|
|
git diff --name-only HEAD >current &&
|
|
test_cmp expect.quoted current
|
|
|
|
'
|
|
|
|
test_expect_success 'check fully quoted output from diff-tree' '
|
|
|
|
git diff --name-only HEAD^ HEAD >current &&
|
|
test_cmp expect.quoted current
|
|
|
|
'
|
|
|
|
test_expect_success 'check fully quoted output from ls-tree' '
|
|
|
|
git ls-tree --name-only -r HEAD >current &&
|
|
test_cmp expect.quoted current
|
|
|
|
'
|
|
|
|
test_expect_success 'setting core.quotepath' '
|
|
|
|
git config --bool core.quotepath false
|
|
|
|
'
|
|
|
|
test_expect_success 'check fully quoted output from ls-files' '
|
|
|
|
git ls-files >current && test_cmp expect.raw current
|
|
|
|
'
|
|
|
|
test_expect_success 'check fully quoted output from diff-files' '
|
|
|
|
git diff --name-only >current &&
|
|
test_cmp expect.raw current
|
|
|
|
'
|
|
|
|
test_expect_success 'check fully quoted output from diff-index' '
|
|
|
|
git diff --name-only HEAD >current &&
|
|
test_cmp expect.raw current
|
|
|
|
'
|
|
|
|
test_expect_success 'check fully quoted output from diff-tree' '
|
|
|
|
git diff --name-only HEAD^ HEAD >current &&
|
|
test_cmp expect.raw current
|
|
|
|
'
|
|
|
|
test_expect_success 'check fully quoted output from ls-tree' '
|
|
|
|
git ls-tree --name-only -r HEAD >current &&
|
|
test_cmp expect.raw current
|
|
|
|
'
|
|
|
|
test_done
|