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", Currently only the slash `/` is recognized as the "magic signature",
but it is envisioned that we will support more types of magic in later but it is envisioned that we will support more types of magic in later
versions of git. 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:: [[def_parent]]parent::
A <<def_commit_object,commit object>> contains a (possibly empty) list 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