4539a8982c
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>
93 lines
2.3 KiB
Bash
Executable File
93 lines
2.3 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
test_description='git apply with weird postimage filenames'
|
|
|
|
. ./test-lib.sh
|
|
|
|
test_expect_success 'setup' '
|
|
vector=$TEST_DIRECTORY/t4135 &&
|
|
|
|
test_tick &&
|
|
git commit --allow-empty -m preimage &&
|
|
git tag preimage &&
|
|
|
|
reset_preimage() {
|
|
git checkout -f preimage^0 &&
|
|
git read-tree -u --reset HEAD &&
|
|
git update-index --refresh
|
|
} &&
|
|
|
|
test_when_finished "rm -f \"tab embedded.txt\"" &&
|
|
test_when_finished "rm -f '\''\"quoteembedded\".txt'\''" &&
|
|
if test_have_prereq !MINGW &&
|
|
touch -- "tab embedded.txt" '\''"quoteembedded".txt'\''
|
|
then
|
|
test_set_prereq FUNNYNAMES
|
|
fi
|
|
'
|
|
|
|
try_filename() {
|
|
desc=$1
|
|
postimage=$2
|
|
prereq=${3:-}
|
|
exp1=${4:-success}
|
|
exp2=${5:-success}
|
|
exp3=${6:-success}
|
|
|
|
test_expect_$exp1 $prereq "$desc, git-style file creation patch" "
|
|
echo postimage >expected &&
|
|
reset_preimage &&
|
|
rm -f '$postimage' &&
|
|
git apply -v \"\$vector\"/'git-$desc.diff' &&
|
|
test_cmp expected '$postimage'
|
|
"
|
|
|
|
test_expect_$exp2 $prereq "$desc, traditional patch" "
|
|
echo postimage >expected &&
|
|
reset_preimage &&
|
|
echo preimage >'$postimage' &&
|
|
git apply -v \"\$vector\"/'diff-$desc.diff' &&
|
|
test_cmp expected '$postimage'
|
|
"
|
|
|
|
test_expect_$exp3 $prereq "$desc, traditional file creation patch" "
|
|
echo postimage >expected &&
|
|
reset_preimage &&
|
|
rm -f '$postimage' &&
|
|
git apply -v \"\$vector\"/'add-$desc.diff' &&
|
|
test_cmp expected '$postimage'
|
|
"
|
|
}
|
|
|
|
try_filename 'plain' 'postimage.txt'
|
|
try_filename 'with spaces' 'post image.txt'
|
|
try_filename 'with tab' 'post image.txt' FUNNYNAMES
|
|
try_filename 'with backslash' 'post\image.txt' BSLASHPSPEC
|
|
try_filename 'with quote' '"postimage".txt' FUNNYNAMES success failure success
|
|
|
|
test_expect_success 'whitespace-damaged traditional patch' '
|
|
echo postimage >expected &&
|
|
reset_preimage &&
|
|
rm -f postimage.txt &&
|
|
git apply -v "$vector/damaged.diff" &&
|
|
test_cmp expected postimage.txt
|
|
'
|
|
|
|
test_expect_success 'traditional patch with colon in timezone' '
|
|
echo postimage >expected &&
|
|
reset_preimage &&
|
|
rm -f "post image.txt" &&
|
|
git apply "$vector/funny-tz.diff" &&
|
|
test_cmp expected "post image.txt"
|
|
'
|
|
|
|
test_expect_success 'traditional, whitespace-damaged, colon in timezone' '
|
|
echo postimage >expected &&
|
|
reset_preimage &&
|
|
rm -f "post image.txt" &&
|
|
git apply "$vector/damaged-tz.diff" &&
|
|
test_cmp expected "post image.txt"
|
|
'
|
|
|
|
test_done
|