Johannes Sixt wrote: > Am 8/12/2010 1:35, schrieb Junio C Hamano: >> * jn/apply-filename-with-sp (2010-07-23) 4 commits >> - apply: Handle traditional patches with space in filename >> - t4135 (apply): use expand instead of pr for portability >> - tests: Test how well "git apply" copes with weird filenames >> - apply: Split quoted filename handling into new function >> >> Looked Ok. Will merge to 'next'. > > The test cases that work with files with tabs must have a prerequisite; > see t3600-rm.sh. Would this work? -- 8< -- Subject: t4135 (apply): filenames with tabs are not usable on NTFS Move the code setting up the FUNNYNAMES prerequisite from v1.3.0-rc1~67 (workaround fat/ntfs deficiences for t3600-rm.sh, 2006-03-03) to test-lib and use it. Reported-by: Johannes Sixt <j6t@xxxxxxxx> Signed-off-by: Jonathan Nieder <jrnieder@xxxxxxxxx> --- t/t3600-rm.sh | 11 +++-------- t/t4135-apply-weird-filenames.sh | 17 +++++++++-------- t/test-lib.sh | 11 +++++++++++ 3 files changed, 23 insertions(+), 16 deletions(-) diff --git a/t/t3600-rm.sh b/t/t3600-rm.sh index b26cabd..a60b7c9 100755 --- a/t/t3600-rm.sh +++ b/t/t3600-rm.sh @@ -14,15 +14,10 @@ test_expect_success \ git add -- foo bar baz 'space embedded' -q && git commit -m 'add normal files'" -if touch -- 'tab embedded' 'newline -embedded' 2>/dev/null -then - test_set_prereq FUNNYNAMES -else - say 'Your filesystem does not allow tabs in filenames.' -fi - test_expect_success FUNNYNAMES 'add files with funny names' " + >'newline +embedded' && + >'tab embedded' && git add -- 'tab embedded' 'newline embedded' && git commit -m 'add files with tabs and newlines' diff --git a/t/t4135-apply-weird-filenames.sh b/t/t4135-apply-weird-filenames.sh index f4c7e15..5c7165e 100755 --- a/t/t4135-apply-weird-filenames.sh +++ b/t/t4135-apply-weird-filenames.sh @@ -40,11 +40,12 @@ test_expect_success 'setup: test prerequisites' ' try_filename() { desc=$1 postimage=$2 - exp1=${3:-success} - exp2=${4:-success} - exp3=${5:-success} + prereq=${3:-} + exp1=${4:-success} + exp2=${5:-success} + exp3=${6:-success} - test_expect_$exp1 "$desc, git-style file creation patch" " + test_expect_$exp1 $prereq "$desc, git-style file creation patch" " reset_preimage && echo postimage >'$postimage' && git add -N '$postimage' && @@ -57,7 +58,7 @@ try_filename() { test_cmp postimage.saved '$postimage' " - test_expect_$exp2 UNIDIFF "$desc, traditional patch" " + test_expect_$exp2 ${prereq:+$prereq,}UNIDIFF "$desc, traditional patch" " reset_preimage && echo preimage >'$postimage.orig' && echo postimage >'$postimage' && @@ -70,7 +71,7 @@ try_filename() { test_cmp postimage.saved '$postimage' " - test_expect_$exp3 FULLDIFF "$desc, traditional file creation patch" " + test_expect_$exp3 ${prereq:+$prereq,}FULLDIFF "$desc, traditional file creation patch" " reset_preimage && reset_subdirs && echo postimage >b/'$postimage' && @@ -86,9 +87,9 @@ try_filename() { try_filename 'plain' 'postimage.txt' try_filename 'with spaces' 'post image.txt' -try_filename 'with tab' 'post image.txt' +try_filename 'with tab' 'post image.txt' FUNNYNAMES try_filename 'with backslash' 'post\image.txt' -try_filename 'with quote' '"postimage".txt' success failure success +try_filename 'with quote' '"postimage".txt' '' success failure success test_expect_success FULLDIFF 'whitespace-damaged traditional patch' ' reset_preimage && diff --git a/t/test-lib.sh b/t/test-lib.sh index 938fb24..5ba8723 100644 --- a/t/test-lib.sh +++ b/t/test-lib.sh @@ -907,6 +907,17 @@ esac test -z "$NO_PERL" && test_set_prereq PERL test -z "$NO_PYTHON" && test_set_prereq PYTHON +# test whether the filesystem supports unusual filenames +f1='newline +embedded' +if + >"$f1" 2>/dev/null && + >'tab embedded' 2>/dev/null +then + test_set_prereq FUNNYNAMES +fi +rm -f "$f1" 'tab embedded' + # test whether the filesystem supports symbolic links ln -s x y 2>/dev/null && test -h y 2>/dev/null && test_set_prereq SYMLINKS rm -f y -- 1.7.2.1.544.ga752d.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html