Junio C Hamano <gitster@xxxxxxxxx> writes: > When our toolset has become too tight without leaving enough escape > hatch to hinder further development, it is very sensible to at least > think about adding a new "--for-debug" option to hash-object and > pack-objects that allows us to deliberately create broken > datastreams to test against. > > I think peff recently added helpers to t5303 to allow us test > corrupt pack streams, which is a way different from what you > envisioned above (i.e. "actively break pack-index") to test > breakages like the ones you were trying to test here. > > Having said all that, I do think the series that added new warnings, > errors and a test for the new warnings is an improvement without a > test for the new errors. So let's queue this, see if somebody comes > up a way to check for these error detection codepath on top of this > series. It wasn't too painful to do one of them, and the result looks rather nice. It lets us add this patch on top of your series. -- >8 -- Subject: [PATCH] t1450: make sure fsck detects a malformed tagger line 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@xxxxxxxxx> --- t/t1450-fsck.sh | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/t/t1450-fsck.sh b/t/t1450-fsck.sh index 9118253..6ecb844 100755 --- a/t/t1450-fsck.sh +++ b/t/t1450-fsck.sh @@ -234,6 +234,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 -- 2.1.0-459-g1bc3b2b -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html