summaryrefslogtreecommitdiff
path: root/t/t3000-ls-files-others.sh
diff options
context:
space:
mode:
Diffstat (limited to 't/t3000-ls-files-others.sh')
-rwxr-xr-xt/t3000-ls-files-others.sh107
1 files changed, 69 insertions, 38 deletions
diff --git a/t/t3000-ls-files-others.sh b/t/t3000-ls-files-others.sh
index adcbe03d56..88be904c09 100755
--- a/t/t3000-ls-files-others.sh
+++ b/t/t3000-ls-files-others.sh
@@ -3,9 +3,9 @@
# Copyright (c) 2005 Junio C Hamano
#
-test_description='git-ls-files test (--others should pick up symlinks).
+test_description='git ls-files test (--others should pick up symlinks).
-This test runs git-ls-files --others with the following on the
+This test runs git ls-files --others with the following on the
filesystem.
path0 - a file
@@ -13,44 +13,75 @@ filesystem.
path2/file2 - a file in a directory
path3-junk - a file to confuse things
path3/file3 - a file in a directory
+ path4 - an empty directory
'
. ./test-lib.sh
-date >path0
-ln -s xyzzy path1
-mkdir path2 path3
-date >path2/file2
-date >path2-junk
-date >path3/file3
-date >path3-junk
-git-update-index --add path3-junk path3/file3
-
-cat >expected1 <<EOF
-expected1
-expected2
-output
-path0
-path1
-path2-junk
-path2/file2
-EOF
-sed -e 's|path2/file2|path2/|' <expected1 >expected2
-
-test_expect_success \
- 'git-ls-files --others to show output.' \
- 'git-ls-files --others >output'
-
-test_expect_success \
- 'git-ls-files --others should pick up symlinks.' \
- 'diff output expected1'
-
-test_expect_success \
- 'git-ls-files --others --directory to show output.' \
- 'git-ls-files --others --directory >output'
-
-
-test_expect_success \
- 'git-ls-files --others --directory should not get confused.' \
- 'diff output expected2'
+test_expect_success 'setup ' '
+ date >path0 &&
+ if test_have_prereq SYMLINKS
+ then
+ ln -s xyzzy path1
+ else
+ date >path1
+ fi &&
+ mkdir path2 path3 path4 &&
+ date >path2/file2 &&
+ date >path2-junk &&
+ date >path3/file3 &&
+ date >path3-junk &&
+ git update-index --add path3-junk path3/file3
+'
+
+test_expect_success 'setup: expected output' '
+ cat >expected1 <<-\EOF &&
+ expected1
+ expected2
+ expected3
+ output
+ path0
+ path1
+ path2-junk
+ path2/file2
+ EOF
+
+ sed -e "s|path2/file2|path2/|" <expected1 >expected2 &&
+ cp expected2 expected3 &&
+ echo path4/ >>expected2
+'
+
+test_expect_success 'ls-files --others' '
+ git ls-files --others >output &&
+ test_cmp expected1 output
+'
+
+test_expect_success 'ls-files --others --directory' '
+ git ls-files --others --directory >output &&
+ test_cmp expected2 output
+'
+
+test_expect_success '--no-empty-directory hides empty directory' '
+ git ls-files --others --directory --no-empty-directory >output &&
+ test_cmp expected3 output
+'
+
+test_expect_success SYMLINKS 'ls-files --others with symlinked submodule' '
+ git init super &&
+ git init sub &&
+ (
+ cd sub &&
+ >a &&
+ git add a &&
+ git commit -m sub &&
+ git pack-refs --all
+ ) &&
+ (
+ cd super &&
+ "$SHELL_PATH" "$TEST_DIRECTORY/../contrib/workdir/git-new-workdir" ../sub sub
+ git ls-files --others --exclude-standard >../actual
+ ) &&
+ echo sub/ >expect &&
+ test_cmp expect actual
+'
test_done