You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.4 KiB
72 lines
1.4 KiB
#!/bin/sh |
|
|
|
test_description='ls-files tests with relative paths |
|
|
|
This test runs git ls-files with various relative path arguments. |
|
' |
|
|
|
. ./test-lib.sh |
|
|
|
new_line=' |
|
' |
|
sq=\' |
|
|
|
test_expect_success 'prepare' ' |
|
: >never-mind-me && |
|
git add never-mind-me && |
|
mkdir top && |
|
( |
|
cd top && |
|
mkdir sub && |
|
x="x xa xbc xdef xghij xklmno" && |
|
y=$(echo "$x" | tr x y) && |
|
touch $x && |
|
touch $y && |
|
cd sub && |
|
git add ../x* |
|
) |
|
' |
|
|
|
test_expect_success 'ls-files with mixed levels' ' |
|
( |
|
cd top/sub && |
|
cat >expect <<-EOF && |
|
../../never-mind-me |
|
../x |
|
EOF |
|
git ls-files $(cat expect) >actual && |
|
test_cmp expect actual |
|
) |
|
' |
|
|
|
test_expect_success 'ls-files -c' ' |
|
( |
|
cd top/sub && |
|
for f in ../y* |
|
do |
|
echo "error: pathspec $sq$f$sq did not match any file(s) known to git." |
|
done >expect.err && |
|
echo "Did you forget to ${sq}git add${sq}?" >>expect.err && |
|
ls ../x* >expect.out && |
|
test_must_fail git ls-files -c --error-unmatch ../[xy]* >actual.out 2>actual.err && |
|
test_cmp expect.out actual.out && |
|
test_cmp expect.err actual.err |
|
) |
|
' |
|
|
|
test_expect_success 'ls-files -o' ' |
|
( |
|
cd top/sub && |
|
for f in ../x* |
|
do |
|
echo "error: pathspec $sq$f$sq did not match any file(s) known to git." |
|
done >expect.err && |
|
echo "Did you forget to ${sq}git add${sq}?" >>expect.err && |
|
ls ../y* >expect.out && |
|
test_must_fail git ls-files -o --error-unmatch ../[xy]* >actual.out 2>actual.err && |
|
test_cmp expect.out actual.out && |
|
test_cmp expect.err actual.err |
|
) |
|
' |
|
|
|
test_done
|
|
|