OSDN Git Service

t1450: make sure fsck detects a malformed tagger line
authorJunio C Hamano <gitster@pobox.com>
Thu, 11 Sep 2014 21:16:36 +0000 (14:16 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 12 Sep 2014 18:05:15 +0000 (11:05 -0700)
With "hash-object --literally", write a tag object that is not
supposed to pass one of the new checks added to "fsck", and make
sure that the new check catches the breakage.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t1450-fsck.sh

index 1b96b40..b120a2d 100755 (executable)
@@ -213,6 +213,25 @@ test_expect_success 'tag with incorrect tag name & missing tagger' '
        grep "expected .tagger. line" out
 '
 
+test_expect_success 'tag with bad tagger' '
+       sha=$(git rev-parse HEAD) &&
+       cat >wrong-tag <<-EOF &&
+       object $sha
+       type commit
+       tag not-quite-wrong
+       tagger Bad Tagger Name
+
+       This is an invalid tag.
+       EOF
+
+       tag=$(git hash-object --literally -t tag -w --stdin <wrong-tag) &&
+       test_when_finished "remove_object $tag" &&
+       echo $tag >.git/refs/tags/wrong &&
+       test_when_finished "git update-ref -d refs/tags/wrong" &&
+       test_must_fail git fsck --tags 2>out &&
+       grep "error in tag .*: invalid author/committer" out
+'
+
 test_expect_success 'cleaned up' '
        git fsck >actual 2>&1 &&
        test_cmp empty actual