Skip to content

Commit

Permalink
t3703, t4208: add test cases for magic pathspec
Browse files Browse the repository at this point in the history
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Nguyễn Thái Ngọc Duy authored and Junio C Hamano committed May 10, 2011
1 parent 0e539dc commit 6fd09f5
Show file tree
Hide file tree
Showing 3 changed files with 93 additions and 0 deletions.
3 changes: 3 additions & 0 deletions Documentation/glossary-content.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
54 changes: 54 additions & 0 deletions t/t3703-add-magic-pathspec.sh
Original file line number Diff line number Diff line change
@@ -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 changes: 36 additions & 0 deletions t/t4208-log-magic-pathspec.sh
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 6fd09f5

Please sign in to comment.