t3703, t4208: add test cases for magic pathspec

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Nguyễn Thái Ngọc Duy 2011-05-08 18:08:26 +07:00 committed by Junio C Hamano
parent 0e539dca51
commit 6fd09f537c
3 changed files with 93 additions and 0 deletions

View file

@ -324,6 +324,9 @@ top `/`;;
Currently only the slash `/` is recognized as the "magic signature",
but it is envisioned that we will support more types of magic in later
versions of git.
+
A pathspec with only a colon means "there is no pathspec". This form
should not be combined with other pathspec.
[[def_parent]]parent::
A <<def_commit_object,commit object>> contains a (possibly empty) list

54
t/t3703-add-magic-pathspec.sh Executable file
View file

@ -0,0 +1,54 @@
#!/bin/sh
test_description='magic pathspec tests using git-add'
. ./test-lib.sh
test_expect_success 'setup' '
mkdir sub anothersub &&
: >sub/foo &&
: >anothersub/foo
'
test_expect_success 'add :/' "
cat >expected <<-EOF &&
add 'anothersub/foo'
add 'expected'
add 'sub/actual'
add 'sub/foo'
EOF
(cd sub && git add -n :/ >actual) &&
test_cmp expected sub/actual
"
cat >expected <<EOF
add 'anothersub/foo'
EOF
test_expect_success 'add :/anothersub' '
(cd sub && git add -n :/anothersub >actual) &&
test_cmp expected sub/actual
'
test_expect_success 'add :/non-existent' '
(cd sub && test_must_fail git add -n :/non-existent)
'
cat >expected <<EOF
add 'sub/foo'
EOF
test_expect_success 'a file with the same (long) magic name exists' '
: >":(icase)ha" &&
test_must_fail git add -n ":(icase)ha" &&
git add -n "./:(icase)ha"
'
test_expect_success 'a file with the same (short) magic name exists' '
mkdir ":" &&
: >":/bar" &&
test_must_fail git add -n :/bar &&
git add -n "./:/bar"
'
test_done

36
t/t4208-log-magic-pathspec.sh Executable file
View file

@ -0,0 +1,36 @@
#!/bin/sh
test_description='magic pathspec tests using git-log'
. ./test-lib.sh
test_expect_success 'setup' '
test_commit initial &&
test_tick &&
git commit --allow-empty -m empty &&
mkdir sub
'
test_expect_success '"git log :/" should be ambiguous' '
test_must_fail git log :/ 2>error &&
grep ambiguous error
'
test_expect_success '"git log :" should be ambiguous' '
test_must_fail git log : 2>error &&
grep ambiguous error
'
test_expect_success 'git log -- :' '
git log -- :
'
test_expect_success 'git log HEAD -- :/' '
cat >expected <<-EOF &&
24b24cf initial
EOF
(cd sub && git log --oneline HEAD -- :/ >../actual) &&
test_cmp expected actual
'
test_done