Message ID | 20201223013606.7972-7-avarab@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | make "mktag" use fsck_tag() | expand |
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes: > cat >tag.sig <<EOF > object $(test_oid deadbeef) > +type tag > +tag mytag > +tagger . <> 0 +0000 > + > +EOF > + > +check_verify_failure 'verify object (hash/type) check -- correct type, nonexisting object' \ > + '^error: char7: could not verify object.*$' > + OK. > +cat >tag.sig <<EOF > +object $head > type tagggg > tag mytag > tagger . <> 0 +0000 > > EOF > > -check_verify_failure 'verify object (SHA1/type) check' \ > +check_verify_failure 'verify object (hash/type) check -- made-up type, nonexisting object' \ > + '^fatal: invalid object type' tagggg is "made-up type". Where did we grab head from? it is head=$(git rev-parse --verify HEAD) at the very beginning. Is that really a nonexisting object? > +cat >tag.sig <<EOF > +object $(test_oid deadbeef) > +type tagggg > +tag mytag > +tagger . <> 0 +0000 > + > +EOF > + > +check_verify_failure 'verify object (hash/type) check -- incorrect type, valid object' \ > '^error: char7: could not verify object.*$' This is the "made-up type, nonexisting object", and previous one is "made-up type, valid object", no? > +cat >tag.sig <<EOF > +object $head > +type tree > +tag mytag > +tagger . <> 0 +0000 > + > +EOF > + > +check_verify_failure 'verify object (hash/type) check -- incorrect type, valid object' \ > + '^error: char7: could not verify object' And this is correct. "type tree" is not a made-up type, and $head is a valid object but it is not of "type tree". Somehow I feel as if this patch is trying to see if reviewers are paying attention to ;-) Thanks.
diff --git a/t/t3800-mktag.sh b/t/t3800-mktag.sh index a22a0954d5..9ae1b0bb0a 100755 --- a/t/t3800-mktag.sh +++ b/t/t3800-mktag.sh @@ -125,19 +125,52 @@ check_verify_failure '"type" line type-name length check' \ '^error: char.*: type too long$' ############################################################ -# 9. verify object (SHA1/type) check +# 9. verify object (hash/type) check cat >tag.sig <<EOF object $(test_oid deadbeef) +type tag +tag mytag +tagger . <> 0 +0000 + +EOF + +check_verify_failure 'verify object (hash/type) check -- correct type, nonexisting object' \ + '^error: char7: could not verify object.*$' + +cat >tag.sig <<EOF +object $head type tagggg tag mytag tagger . <> 0 +0000 EOF -check_verify_failure 'verify object (SHA1/type) check' \ +check_verify_failure 'verify object (hash/type) check -- made-up type, nonexisting object' \ + '^fatal: invalid object type' + +cat >tag.sig <<EOF +object $(test_oid deadbeef) +type tagggg +tag mytag +tagger . <> 0 +0000 + +EOF + +check_verify_failure 'verify object (hash/type) check -- incorrect type, valid object' \ '^error: char7: could not verify object.*$' +cat >tag.sig <<EOF +object $head +type tree +tag mytag +tagger . <> 0 +0000 + +EOF + +check_verify_failure 'verify object (hash/type) check -- incorrect type, valid object' \ + '^error: char7: could not verify object' + ############################################################ # 10. verify tag-name check
The verify_object() function in "mktag.c" is tasked with ensuring that our tag refers to a valid object. The existing test for this might fail because it was also testing that "type taggg" didn't refer to a valid object type (it should be "type tag"), or because we referred to a valid object but got the type wrong. Let's split these tests up, so we're testing all combinations of a non-existing object and in invalid/wrong "type" lines. Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> --- t/t3800-mktag.sh | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-)