]> git.ipfire.org Git - thirdparty/git.git/commitdiff
mktag tests: test "hash-object" compatibility
authorÆvar Arnfjörð Bjarmason <avarab@gmail.com>
Tue, 5 Jan 2021 19:42:40 +0000 (20:42 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 5 Jan 2021 22:58:29 +0000 (14:58 -0800)
Change all the successful "mktag" tests to test that "hash-object"
produces the same hash for the input, and that fsck passes for
both.

This tests e.g. that "mktag" doesn't trim its input or otherwise munge
it in a way that "hash-object" doesn't.

Since we're doing an "fsck --strict" here at the end let's incorporate
the creation of the "mytag" name into this test, removing the
special-case at the end of the file.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t3800-mktag.sh

index 661b62f0912004b9d2171b09acd010f236253b5c..c1008361a582bd7887386b07fe879c37101f5234 100755 (executable)
@@ -19,6 +19,19 @@ check_verify_failure () {
        '
 }
 
+test_expect_mktag_success() {
+       test_expect_success "$1" '
+               git hash-object -t tag -w --stdin <tag.sig >expected &&
+               git fsck --strict &&
+
+               git mktag <tag.sig >hash &&
+               test_cmp expected hash &&
+               test_when_finished "git update-ref -d refs/tags/mytag $(cat hash)" &&
+               git update-ref refs/tags/mytag $(cat hash) $(test_oid zero) &&
+               git fsck --strict
+       '
+}
+
 ###########################################################
 # first create a commit, so we have a valid object/type
 # for the tag.
@@ -220,9 +233,7 @@ tagger T A Gger <> 0 +0000
 
 EOF
 
-test_expect_success \
-    'allow empty tag email' \
-    'git mktag <tag.sig'
+test_expect_mktag_success 'allow empty tag email'
 
 ############################################################
 # 16. disallow spaces in tag email
@@ -347,9 +358,7 @@ tagger T A Gger <tagger@example.com> 1206478233 -0500
 this line comes after an extra newline
 EOF
 
-test_expect_success 'allow extra newlines at start of body' '
-       git mktag <tag.sig
-'
+test_expect_mktag_success 'allow extra newlines at start of body'
 
 cat >tag.sig <<EOF
 object $head
@@ -359,9 +368,7 @@ tagger T A Gger <tagger@example.com> 1206478233 -0500
 
 EOF
 
-test_expect_success 'require a blank line before an empty body (1)' '
-       git mktag <tag.sig
-'
+test_expect_mktag_success 'require a blank line before an empty body (1)'
 
 cat >tag.sig <<EOF
 object $head
@@ -384,10 +391,6 @@ tagger T A Gger <tagger@example.com> 1206478233 -0500
 
 EOF
 
-test_expect_success 'create valid tag' '
-       git mktag <tag.sig >hash &&
-       git update-ref refs/tags/mytag $(cat hash) $(test_oid zero) &&
-       git fsck --strict
-'
+test_expect_mktag_success 'create valid tag object'
 
 test_done