From: Andrei Rybak Date: Tue, 15 Jun 2021 10:34:09 GMT Subject: Re: [PATCH 3/6] mktag tests: test hash-object --literally and unreachable fsck Message-ID: <6148debe-fc44-67b7-ac9c-f27d376bc9f2@gmail.com> In-Reply-To: On 14/06/2021 19:28, Ævar Arnfjörð Bjarmason wrote: > Extend the mktag tests to pass the tag we've created through both > hash-object --literally and fsck. > > This checks that fsck itself will not complain about certain invalid > content if a reachable tip isn't involved. Due to how fsck works and > walks the graph the failure will be different if the object is > reachable, so we might succeed before we've created the ref. > > Signed-off-by: Ævar Arnfjörð Bjarmason > --- > t/t3800-mktag.sh | 48 +++++++++++++++++++++++++++++++++++++++--------- > 1 file changed, 39 insertions(+), 9 deletions(-) > > diff --git a/t/t3800-mktag.sh b/t/t3800-mktag.sh > index 951e6d39c2a..43b67a149f8 100755 > --- a/t/t3800-mktag.sh > +++ b/t/t3800-mktag.sh > @@ -16,6 +16,8 @@ check_verify_failure () { > message=$2 && > shift 2 && > > + no_strict= && > + fsck_obj_ok= && > no_strict= && > while test $# != 0 > do > @@ -23,7 +25,10 @@ check_verify_failure () { > --no-strict) > no_strict=yes > ;; > - esac && > + --fsck-obj-ok) > + fsck_obj_ok=yes > + ;; > + esac "&&" after "esac" got removed. > shift > done && > > @@ -37,6 +42,23 @@ check_verify_failure () { > git mktag --no-strict fi > ' > + > + test_expect_success "setup: $subject" ' > + # Reset any leftover state from the last $subject > + rm -rf bad-tag && > + > + git init --bare bad-tag && > + git -C bad-tag hash-object -t tag -w --stdin --literally + ' > + > + test_expect_success "hash-object & fsck unreachable: $subject" ' > + if test -n "$fsck_obj_ok" > + then > + git -C bad-tag fsck > + else > + test_must_fail git -C bad-tag fsck >out 2>err This is the very end of the check_verify_failure function. It seems that after "out" and "err" are created here, nothing else checks their contents. > + fi > + ' > } > > test_expect_mktag_success() { > @@ -183,7 +205,8 @@ tagger . <> 0 +0000 > EOF > > check_verify_failure 'verify object (hash/type) check -- correct type, nonexisting object' \ > - '^fatal: could not read tagged object' > + '^fatal: could not read tagged object' \ > + --fsck-obj-ok > > cat >tag.sig < object $head > @@ -216,7 +239,8 @@ tagger . <> 0 +0000 > EOF > > check_verify_failure 'verify object (hash/type) check -- mismatched type, valid object' \ > - '^fatal: object.*tagged as.*tree.*but is.*commit' > + '^fatal: object.*tagged as.*tree.*but is.*commit' \ > + --fsck-obj-ok > > ############################################################ > # 9.5. verify object (hash/type) check -- replacement > @@ -245,7 +269,8 @@ tagger . <> 0 +0000 > EOF > > check_verify_failure 'verify object (hash/type) check -- mismatched type, valid object' \ > - '^fatal: object.*tagged as.*tree.*but is.*blob' > + '^fatal: object.*tagged as.*tree.*but is.*blob' \ > + --fsck-obj-ok > > ############################################################ > # 10. verify tag-name check > @@ -260,7 +285,8 @@ EOF > > check_verify_failure 'verify tag-name check' \ > '^error:.* badTagName:' \ > - --no-strict > + --no-strict \ > + --fsck-obj-ok > > ############################################################ > # 11. tagger line label check #1 > @@ -275,7 +301,8 @@ EOF > > check_verify_failure '"tagger" line label check #1' \ > '^error:.* missingTaggerEntry:' \ > - --no-strict > + --no-strict \ > + --fsck-obj-ok > > ############################################################ > # 12. tagger line label check #2 > @@ -291,7 +318,8 @@ EOF > > check_verify_failure '"tagger" line label check #2' \ > '^error:.* missingTaggerEntry:' \ > - --no-strict > + --no-strict \ > + --fsck-obj-ok > > ############################################################ > # 13. allow missing tag author name like fsck > @@ -321,7 +349,8 @@ EOF > > check_verify_failure 'disallow malformed tagger' \ > '^error:.* badEmail:' \ > - --no-strict > + --no-strict \ > + --fsck-obj-ok > > ############################################################ > # 15. allow empty tag email > @@ -446,7 +475,8 @@ EOF > > check_verify_failure 'detect invalid header entry' \ > '^error:.* extraHeaderEntry:' \ > - --no-strict > + --no-strict \ > + --fsck-obj-ok > > test_expect_success 'invalid header entry config & fsck' ' > test_must_fail git mktag