diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-09-23 14:30:49 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-09-23 14:30:49 -0700 |
commit | a0b1cb60ab296476084b3d4766a943e2d62719b8 (patch) | |
tree | 76ae24f6eb6c2c7488e0c9ae7851ae378d614c3d /t | |
parent | 85b3c75f4fd3aa4da976bac702827dc8d7d1bf15 (diff) | |
parent | 385ceec1cb46f8a476fa11ffc853dedba512fd52 (diff) | |
download | git-a0b1cb60ab296476084b3d4766a943e2d62719b8.tar.gz git-a0b1cb60ab296476084b3d4766a943e2d62719b8.tar.xz |
Merge branch 'cb/maint-ls-files-error-report' into maint
* cb/maint-ls-files-error-report:
t3005: do not assume a particular order of stdout and stderr of git-ls-files
ls-files: fix pathspec display on error
Diffstat (limited to 't')
-rwxr-xr-x | t/t3005-ls-files-relative.sh | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/t/t3005-ls-files-relative.sh b/t/t3005-ls-files-relative.sh new file mode 100755 index 000000000..377869432 --- /dev/null +++ b/t/t3005-ls-files-relative.sh @@ -0,0 +1,72 @@ +#!/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 |