git/t/t3010-ls-files-killed-modified.sh
Jeff King 99094a7ad4 t: fix trivial &&-chain breakage
These are tests which are missing a link in their &&-chain,
but during a setup phase. We may fail to notice failure in
commands that build the test environment, but these are
typically not expected to fail at all (but it's still good
to double-check that our test environment is what we
expect).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2015-03-20 10:20:14 -07:00

130 lines
2.9 KiB
Bash
Executable file

#!/bin/sh
#
# Copyright (c) 2005 Junio C Hamano
#
test_description='git ls-files -k and -m flags test.
This test prepares the following in the cache:
path0 - a file
path1 - a symlink
path2/file2 - a file in a directory
path3/file3 - a file in a directory
pathx/ju - a file in a directory
submod1/ - a submodule
submod2/ - another submodule
and the following on the filesystem:
path0/file0 - a file in a directory
path1/file1 - a file in a directory
path2 - a file
path3 - a symlink
path4 - a file
path5 - a symlink
path6/file6 - a file in a directory
pathx/ju/nk - a file in a directory to be killed
submod1/ - a submodule (modified from the cache)
submod2/ - a submodule (matches the cache)
git ls-files -k should report that existing filesystem objects
path0/*, path1/*, path2 and path3 to be killed.
Also for modification test, the cache and working tree have:
path7 - an empty file, modified to a non-empty file.
path8 - a non-empty file, modified to an empty file.
path9 - an empty file, cache dirtied.
path10 - a non-empty file, cache dirtied.
We should report path0, path1, path2/file2, path3/file3, path7 and path8
modified without reporting path9 and path10. submod1 is also modified.
'
. ./test-lib.sh
test_expect_success 'git update-index --add to add various paths.' '
date >path0 &&
test_ln_s_add xyzzy path1 &&
mkdir path2 path3 pathx &&
date >path2/file2 &&
date >path3/file3 &&
>pathx/ju &&
: >path7 &&
date >path8 &&
: >path9 &&
date >path10 &&
git update-index --add -- path0 path?/file? pathx/ju path7 path8 path9 path10 &&
for i in 1 2
do
git init submod$i &&
(
cd submod$i && git commit --allow-empty -m "empty $i"
) || break
done &&
git update-index --add submod[12] &&
(
cd submod1 &&
git commit --allow-empty -m "empty 1 (updated)"
) &&
rm -fr path? # leave path10 alone
'
test_expect_success 'git ls-files -k to show killed files.' '
date >path2 &&
if test_have_prereq SYMLINKS
then
ln -s frotz path3 &&
ln -s nitfol path5
else
date >path3 &&
date >path5
fi &&
mkdir -p path0 path1 path6 pathx/ju &&
date >path0/file0 &&
date >path1/file1 &&
date >path6/file6 &&
date >path7 &&
: >path8 &&
: >path9 &&
touch path10 &&
>pathx/ju/nk &&
cat >.expected <<-\EOF
path0/file0
path1/file1
path2
path3
pathx/ju/nk
EOF
'
test_expect_success 'git ls-files -k output (w/o icase)' '
git ls-files -k >.output &&
test_cmp .expected .output
'
test_expect_success 'git ls-files -k output (w/ icase)' '
git -c core.ignorecase=true ls-files -k >.output &&
test_cmp .expected .output
'
test_expect_success 'git ls-files -m to show modified files.' '
git ls-files -m >.output
'
test_expect_success 'validate git ls-files -m output.' '
cat >.expected <<-\EOF &&
path0
path1
path2/file2
path3/file3
path7
path8
pathx/ju
submod1
EOF
test_cmp .expected .output
'
test_done