git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 4/6] mktag tests: test update-ref and reachable fsck

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Jun 17, 2021, 10:42 UTC
Message-ID
<patch-4.6-a1d95c81ea-20210617T104011Z-avarab@gmail.com>
In-Reply-To
<cover-0.6-0000000000-20210617T104011Z-avarab@gmail.com>

Extend the mktag tests to pass the created bad tag through update-ref and fsck.

The reason for passing it through update-ref is to guard against it having a segfault as for-each-ref did before c6854508808 (ref-filter: fix NULL check for parse object failure, 2021-04-01).

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 t/t3800-mktag.sh | 21 ++++++++++++++++++++-
 1 file changed, 20 insertions(+), 1 deletion(-)
diff --git a/t/t3800-mktag.sh b/t/t3800-mktag.sh
index 78c6f64e36..67f6ecbe88 100755
--- a/t/t3800-mktag.sh
+++ b/t/t3800-mktag.sh
@@ -44,11 +44,13 @@ check_verify_failure () {
 	'
 
 	test_expect_success "setup: $subject" '
+		tag_ref=refs/tags/bad_tag &&
+
 		# 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 <tag.sig
+		bad_tag=$(git -C bad-tag hash-object -t tag -w --stdin --literally <tag.sig)
 	'
 
 	test_expect_success "hash-object & fsck unreachable: $subject" '
@@ -59,6 +61,23 @@ check_verify_failure () {
 			test_must_fail git -C bad-tag fsck
 		fi
 	'
+
+	test_expect_success "update-ref & fsck reachable: $subject" '
+		# Make sure the earlier test created it for us
+		git rev-parse "$bad_tag" &&
+
+		# The update-ref of the bad content will fail, do it
+		# anyway to see if it segfaults
+		test_might_fail git -C bad-tag update-ref "$tag_ref" "$bad_tag" &&
+
+		# Manually create the broken, we cannot do it with
+		# update-ref
+		echo "$bad_tag" >"bad-tag/$tag_ref" &&
+
+		# Unlike fsck-ing unreachable content above, this
+		# will always fail.
+		test_must_fail git -C bad-tag fsck
+	'
 }
 
 test_expect_mktag_success() {
-- 
2.32.0.571.gdba276db2c
Previous: Ævar Arnfjörð BjarmasonNext: Ævar Arnfjörð Bjarmason
Message 16 of 17 in “mktag tests: test more exhaustively”
  1. 0/6 mktag tests: test more exhaustivelyÆvar Arnfjörð Bjarmason, Jun 14, 2021
  2. 1/6 mktag tests: parse out options in helperÆvar Arnfjörð Bjarmason, Jun 14, 2021
  3. 4/6 mktag tests: test update-ref and reachable fsckÆvar Arnfjörð Bjarmason, Jun 14, 2021
  4. 3/6 mktag tests: test hash-object --literally and unreachable fsckÆvar Arnfjörð Bjarmason, Jun 14, 2021
  5. Andrei RybakJun 15, 2021
  6. Ævar Arnfjörð BjarmasonJun 15, 2021
  7. 2/6 mktag tests: invert --no-strict testÆvar Arnfjörð Bjarmason, Jun 14, 2021
  8. 6/6 mktag tests: test fast-exportÆvar Arnfjörð Bjarmason, Jun 14, 2021
  9. 5/6 mktag tests: test for-each-refÆvar Arnfjörð Bjarmason, Jun 14, 2021
  10. Junio C HamanoJun 15, 2021
  11. 0/6 mktag tests: test more exhaustivelyÆvar Arnfjörð Bjarmason, Jun 17, 2021
  12. 1/6 mktag tests: parse out options in helperÆvar Arnfjörð Bjarmason, Jun 17, 2021
  13. 2/6 mktag tests: invert --no-strict testÆvar Arnfjörð Bjarmason, Jun 17, 2021
  14. 3/6 mktag tests: test hash-object --literally and unreachable fsckÆvar Arnfjörð Bjarmason, Jun 17, 2021
  15. 5/6 mktag tests: test for-each-refÆvar Arnfjörð Bjarmason, Jun 17, 2021
  16. 4/6 mktag tests: test update-ref and reachable fsckÆvar Arnfjörð Bjarmason, Jun 17, 2021
  17. 6/6 mktag tests: test fast-exportÆvar Arnfjörð Bjarmason, Jun 17, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.