summaryrefslogtreecommitdiff
path: root/t/t3300-funny-names.sh
diff options
context:
space:
mode:
Diffstat (limited to 't/t3300-funny-names.sh')
-rwxr-xr-xt/t3300-funny-names.sh213
1 files changed, 133 insertions, 80 deletions
diff --git a/t/t3300-funny-names.sh b/t/t3300-funny-names.sh
index 72a93da08c..5e29a05259 100755
--- a/t/t3300-funny-names.sh
+++ b/t/t3300-funny-names.sh
@@ -21,125 +21,178 @@ cat >"$p0" <<\EOF
3. A quick brown fox jumps over the lazy cat, oops dog.
EOF
-cat >"$p1" "$p0"
+cat 2>/dev/null >"$p1" "$p0"
echo 'Foo Bar Baz' >"$p2"
-test -f "$p1" && cmp "$p0" "$p1" || {
+if test -f "$p1" && cmp "$p0" "$p1"
+then
+ test_set_prereq TABS_IN_FILENAMES
+else
# since FAT/NTFS does not allow tabs in filenames, skip this test
- say 'Your filesystem does not allow tabs in filenames, test skipped.'
- test_done
-}
+ say 'Your filesystem does not allow tabs in filenames'
+fi
+test_expect_success TABS_IN_FILENAMES 'setup expect' "
echo 'just space
no-funny' >expected
-test_expect_success 'git-ls-files no-funny' \
- 'git-update-index --add "$p0" "$p2" &&
- git-ls-files >current &&
- diff -u expected current'
+"
-t0=`git-write-tree`
-echo "$t0" >t0
+test_expect_success TABS_IN_FILENAMES 'git ls-files no-funny' \
+ 'git update-index --add "$p0" "$p2" &&
+ git ls-files >current &&
+ test_cmp expected current'
-echo 'just space
+test_expect_success TABS_IN_FILENAMES 'setup expect' '
+t0=`git write-tree` &&
+echo "$t0" >t0 &&
+
+cat > expected <<\EOF
+just space
no-funny
-"tabs\t,\" (dq) and spaces"' >expected
-test_expect_success 'git-ls-files with-funny' \
- 'git-update-index --add "$p1" &&
- git-ls-files >current &&
- diff -u expected current'
+"tabs\t,\" (dq) and spaces"
+EOF
+'
+test_expect_success TABS_IN_FILENAMES 'git ls-files with-funny' \
+ 'git update-index --add "$p1" &&
+ git ls-files >current &&
+ test_cmp expected current'
+
+test_expect_success TABS_IN_FILENAMES 'setup expect' "
echo 'just space
no-funny
-tabs ," (dq) and spaces' >expected
-test_expect_success 'git-ls-files -z with-funny' \
- 'git-ls-files -z | tr \\0 \\012 >current &&
- diff -u expected current'
+tabs ,\" (dq) and spaces' >expected
+"
-t1=`git-write-tree`
-echo "$t1" >t1
+test_expect_success TABS_IN_FILENAMES 'git ls-files -z with-funny' \
+ 'git ls-files -z | perl -pe y/\\000/\\012/ >current &&
+ test_cmp expected current'
-echo 'just space
+test_expect_success TABS_IN_FILENAMES 'setup expect' '
+t1=`git write-tree` &&
+echo "$t1" >t1 &&
+
+cat > expected <<\EOF
+just space
no-funny
-"tabs\t,\" (dq) and spaces"' >expected
-test_expect_success 'git-ls-tree with funny' \
- 'git-ls-tree -r $t1 | sed -e "s/^[^ ]* //" >current &&
- diff -u expected current'
+"tabs\t,\" (dq) and spaces"
+EOF
+'
+
+test_expect_success TABS_IN_FILENAMES 'git ls-tree with funny' \
+ 'git ls-tree -r $t1 | sed -e "s/^[^ ]* //" >current &&
+ test_cmp expected current'
+
+test_expect_success TABS_IN_FILENAMES 'setup expect' '
+cat > expected <<\EOF
+A "tabs\t,\" (dq) and spaces"
+EOF
+'
-echo 'A "tabs\t,\" (dq) and spaces"' >expected
-test_expect_success 'git-diff-index with-funny' \
- 'git-diff-index --name-status $t0 >current &&
- diff -u expected current'
+test_expect_success TABS_IN_FILENAMES 'git diff-index with-funny' \
+ 'git diff-index --name-status $t0 >current &&
+ test_cmp expected current'
-test_expect_success 'git-diff-tree with-funny' \
- 'git-diff-tree --name-status $t0 $t1 >current &&
- diff -u expected current'
+test_expect_success TABS_IN_FILENAMES 'git diff-tree with-funny' \
+ 'git diff-tree --name-status $t0 $t1 >current &&
+ test_cmp expected current'
+test_expect_success TABS_IN_FILENAMES 'setup expect' "
echo 'A
-tabs ," (dq) and spaces' >expected
-test_expect_success 'git-diff-index -z with-funny' \
- 'git-diff-index -z --name-status $t0 | tr \\0 \\012 >current &&
- diff -u expected current'
-
-test_expect_success 'git-diff-tree -z with-funny' \
- 'git-diff-tree -z --name-status $t0 $t1 | tr \\0 \\012 >current &&
- diff -u expected current'
-
-echo 'CNUM no-funny "tabs\t,\" (dq) and spaces"' >expected
-test_expect_success 'git-diff-tree -C with-funny' \
- 'git-diff-tree -C --find-copies-harder --name-status \
+tabs ,\" (dq) and spaces' >expected
+"
+
+test_expect_success TABS_IN_FILENAMES 'git diff-index -z with-funny' \
+ 'git diff-index -z --name-status $t0 | perl -pe y/\\000/\\012/ >current &&
+ test_cmp expected current'
+
+test_expect_success TABS_IN_FILENAMES 'git diff-tree -z with-funny' \
+ 'git diff-tree -z --name-status $t0 $t1 | perl -pe y/\\000/\\012/ >current &&
+ test_cmp expected current'
+
+test_expect_success TABS_IN_FILENAMES 'setup expect' '
+cat > expected <<\EOF
+CNUM no-funny "tabs\t,\" (dq) and spaces"
+EOF
+'
+
+test_expect_success TABS_IN_FILENAMES 'git diff-tree -C with-funny' \
+ 'git diff-tree -C --find-copies-harder --name-status \
$t0 $t1 | sed -e 's/^C[0-9]*/CNUM/' >current &&
- diff -u expected current'
+ test_cmp expected current'
+
+test_expect_success TABS_IN_FILENAMES 'setup expect' '
+cat > expected <<\EOF
+RNUM no-funny "tabs\t,\" (dq) and spaces"
+EOF
+'
-echo 'RNUM no-funny "tabs\t,\" (dq) and spaces"' >expected
-test_expect_success 'git-diff-tree delete with-funny' \
- 'git-update-index --force-remove "$p0" &&
- git-diff-index -M --name-status \
+test_expect_success TABS_IN_FILENAMES 'git diff-tree delete with-funny' \
+ 'git update-index --force-remove "$p0" &&
+ git diff-index -M --name-status \
$t0 | sed -e 's/^R[0-9]*/RNUM/' >current &&
- diff -u expected current'
+ test_cmp expected current'
-echo 'diff --git a/no-funny "b/tabs\t,\" (dq) and spaces"
+test_expect_success TABS_IN_FILENAMES 'setup expect' '
+cat > expected <<\EOF
+diff --git a/no-funny "b/tabs\t,\" (dq) and spaces"
similarity index NUM%
rename from no-funny
-rename to "tabs\t,\" (dq) and spaces"' >expected
+rename to "tabs\t,\" (dq) and spaces"
+EOF
+'
-test_expect_success 'git-diff-tree delete with-funny' \
- 'git-diff-index -M -p $t0 |
+test_expect_success TABS_IN_FILENAMES 'git diff-tree delete with-funny' \
+ 'git diff-index -M -p $t0 |
sed -e "s/index [0-9]*%/index NUM%/" >current &&
- diff -u expected current'
+ test_cmp expected current'
-chmod +x "$p1"
-echo 'diff --git a/no-funny "b/tabs\t,\" (dq) and spaces"
+test_expect_success TABS_IN_FILENAMES 'setup expect' '
+chmod +x "$p1" &&
+cat > expected <<\EOF
+diff --git a/no-funny "b/tabs\t,\" (dq) and spaces"
old mode 100644
new mode 100755
similarity index NUM%
rename from no-funny
-rename to "tabs\t,\" (dq) and spaces"' >expected
+rename to "tabs\t,\" (dq) and spaces"
+EOF
+'
-test_expect_success 'git-diff-tree delete with-funny' \
- 'git-diff-index -M -p $t0 |
+test_expect_success TABS_IN_FILENAMES 'git diff-tree delete with-funny' \
+ 'git diff-index -M -p $t0 |
sed -e "s/index [0-9]*%/index NUM%/" >current &&
- diff -u expected current'
+ test_cmp expected current'
+
+test_expect_success TABS_IN_FILENAMES 'setup expect' '
+cat >expected <<\EOF
+ "tabs\t,\" (dq) and spaces"
+ 1 files changed, 0 insertions(+), 0 deletions(-)
+EOF
+'
-echo >expected ' "tabs\t,\" (dq) and spaces"
- 1 files changed, 0 insertions(+), 0 deletions(-)'
-test_expect_success 'git-diff-tree rename with-funny applied' \
- 'git-diff-index -M -p $t0 |
- git-apply --stat | sed -e "s/|.*//" -e "s/ *\$//" >current &&
- diff -u expected current'
+test_expect_success TABS_IN_FILENAMES 'git diff-tree rename with-funny applied' \
+ 'git diff-index -M -p $t0 |
+ git apply --stat | sed -e "s/|.*//" -e "s/ *\$//" >current &&
+ test_cmp expected current'
-echo >expected ' no-funny
+test_expect_success TABS_IN_FILENAMES 'setup expect' '
+cat > expected <<\EOF
+ no-funny
"tabs\t,\" (dq) and spaces"
- 2 files changed, 3 insertions(+), 3 deletions(-)'
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+EOF
+'
-test_expect_success 'git-diff-tree delete with-funny applied' \
- 'git-diff-index -p $t0 |
- git-apply --stat | sed -e "s/|.*//" -e "s/ *\$//" >current &&
- diff -u expected current'
+test_expect_success TABS_IN_FILENAMES 'git diff-tree delete with-funny applied' \
+ 'git diff-index -p $t0 |
+ git apply --stat | sed -e "s/|.*//" -e "s/ *\$//" >current &&
+ test_cmp expected current'
-test_expect_success 'git-apply non-git diff' \
- 'git-diff-index -p $t0 |
+test_expect_success TABS_IN_FILENAMES 'git apply non-git diff' \
+ 'git diff-index -p $t0 |
sed -ne "/^[-+@]/p" |
- git-apply --stat | sed -e "s/|.*//" -e "s/ *\$//" >current &&
- diff -u expected current'
+ git apply --stat | sed -e "s/|.*//" -e "s/ *\$//" >current &&
+ test_cmp expected current'
test_done