From: Nguyễn Thái Ngọc Duy Date: Sun, 08 May 2011 11:08:26 GMT Subject: [PATCH] t3703, t4208: add test cases for magic pathspec Message-ID: <1304852906-29272-1-git-send-email-pclouds@gmail.com> In-Reply-To: <1304764507-27547-1-git-send-email-pclouds@gmail.com> While at it, also document ":" syntax. Signed-off-by: Nguyễn Thái Ngọc Duy --- v2. Documentation/glossary-content.txt | 3 + t/t3703-add-magic-pathspec.sh | 78 ++++++++++++++++++++++++++++++++++++ t/t4208-log-magic-pathspec.sh | 40 ++++++++++++++++++ 3 files changed, 121 insertions(+), 0 deletions(-) create mode 100755 t/t3703-add-magic-pathspec.sh create mode 100755 t/t4208-log-magic-pathspec.sh diff --git a/Documentation/glossary-content.txt b/Documentation/glossary-content.txt index 0ca029b..02cea08 100644 --- a/Documentation/glossary-content.txt +++ b/Documentation/glossary-content.txt @@ -311,6 +311,9 @@ parenthesis `(`, a comma-separated list of zero or more "magic words", and a close parentheses `)`, and the remainder is the pattern to match against the path. + +A pathspec with only a colon means "there is no pathspec". This form +cannot be combined with other pathspec. ++ The "magic signature" consists of an ASCII symbol that is not alphanumeric. + diff --git a/t/t3703-add-magic-pathspec.sh b/t/t3703-add-magic-pathspec.sh new file mode 100755 index 0000000..3d8c6b8 --- /dev/null +++ b/t/t3703-add-magic-pathspec.sh @@ -0,0 +1,78 @@ +#!/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_failure 'colon alone magic can only used alone' ' + test_must_fail git add -n sub/foo : && + test_must_fail git add -n : sub/foo +' + +cat >expected <actual) && + test_cmp expected sub/actual +' + +test_expect_success 'add :/' ' + (cd sub && git add -n :/ >actual) && + test_cmp expected sub/actual +' + +cat >expected <actual) && + test_cmp expected sub/actual +' + +test_expect_success 'add :/non-existent' ' + (cd sub && test_must_fail git add -n :/non-existent) +' + +cat >expected <actual) && + test_cmp expected sub/actual +' + +test_expect_success 'a file with the same (long) magic name exists' ' + : >":(icase)ha" && + test_must_fail git add -n ":(icase)ha" 2>error && + git add -n "./:(icase)ha" +' + +cat >expected <":/bar" && + test_must_fail git add -n :/bar && + git add -n "./:/bar" +' + +test_done diff --git a/t/t4208-log-magic-pathspec.sh b/t/t4208-log-magic-pathspec.sh new file mode 100755 index 0000000..b296a74 --- /dev/null +++ b/t/t4208-log-magic-pathspec.sh @@ -0,0 +1,40 @@ +#!/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_failure 'git log :/ ambiguous with [ref]:/path' ' + test_must_fail git log :/ 2>error && + grep ambiguous error +' + +test_expect_failure 'git log :' ' + git log : +' + +test_expect_success 'git log HEAD -- :/' ' + cat >expected <../actual) && + test_cmp expected actual +' + +test_expect_success 'git log HEAD -- :' ' + cat >expected <../actual) && + test_cmp expected actual +' + +test_done -- 1.7.4.74.g639db