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

[PATCH 10/20] t5319: make test work with SHA-256

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Dec 21, 2019, 19:49 UTC
Message-ID
<20191221194936.1346664-11-sandals@crustytoothpaste.net>
In-Reply-To
<20191221194936.1346664-1-sandals@crustytoothpaste.net>
This test corrupts various locations in a multi-pack index to test
various error responses.  However, these offsets differ between SHA-1
indexes and SHA-256 indexes due to differences in object length.  Use
test_oid to look up the correct offsets based on the algorithm.
---
 t/t5319-multi-pack-index.sh | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/t/t5319-multi-pack-index.sh b/t/t5319-multi-pack-index.sh
index 464bb68e89..43a7a66c9d 100755
--- a/t/t5319-multi-pack-index.sh
+++ b/t/t5319-multi-pack-index.sh
@@ -28,6 +28,20 @@ midx_read_expect () {
 	test_cmp expect actual
 }
 
+test_expect_success 'setup' '
+	test_oid_init &&
+	test_oid_cache <<-EOF
+	idxoff sha1:2999
+	idxoff sha256:3739
+
+	packnameoff sha1:652
+	packnameoff sha256:940
+
+	fanoutoff sha1:1
+	fanoutoff sha256:3
+	EOF
+'
+
 test_expect_success 'write midx with no packs' '
 	test_when_finished rm -f pack/multi-pack-index &&
 	git multi-pack-index --object-dir=. write &&
@@ -225,7 +239,7 @@ test_expect_success 'verify bad signature' '
 		"multi-pack-index signature"
 '
 
-HASH_LEN=20
+HASH_LEN=$(test_oid rawsz)
 NUM_OBJECTS=74
 MIDX_BYTE_VERSION=4
 MIDX_BYTE_OID_VERSION=5
@@ -238,9 +252,9 @@ MIDX_CHUNK_LOOKUP_WIDTH=12
 MIDX_OFFSET_PACKNAMES=$(($MIDX_HEADER_SIZE + \
 			 $MIDX_NUM_CHUNKS * $MIDX_CHUNK_LOOKUP_WIDTH))
 MIDX_BYTE_PACKNAME_ORDER=$(($MIDX_OFFSET_PACKNAMES + 2))
-MIDX_OFFSET_OID_FANOUT=$(($MIDX_OFFSET_PACKNAMES + 652))
+MIDX_OFFSET_OID_FANOUT=$(($MIDX_OFFSET_PACKNAMES + $(test_oid packnameoff)))
 MIDX_OID_FANOUT_WIDTH=4
-MIDX_BYTE_OID_FANOUT_ORDER=$((MIDX_OFFSET_OID_FANOUT + 250 * $MIDX_OID_FANOUT_WIDTH + 1))
+MIDX_BYTE_OID_FANOUT_ORDER=$((MIDX_OFFSET_OID_FANOUT + 250 * $MIDX_OID_FANOUT_WIDTH + $(test_oid fanoutoff)))
 MIDX_OFFSET_OID_LOOKUP=$(($MIDX_OFFSET_OID_FANOUT + 256 * $MIDX_OID_FANOUT_WIDTH))
 MIDX_BYTE_OID_LOOKUP=$(($MIDX_OFFSET_OID_LOOKUP + 16 * $HASH_LEN))
 MIDX_OFFSET_OBJECT_OFFSETS=$(($MIDX_OFFSET_OID_LOOKUP + $NUM_OBJECTS * $HASH_LEN))
@@ -387,7 +401,7 @@ test_expect_success 'force some 64-bit offsets with pack-objects' '
 	pack64=$(git pack-objects --index-version=2,0x40 objects64/pack/test-64 <obj-list) &&
 	idx64=objects64/pack/test-64-$pack64.idx &&
 	chmod u+w $idx64 &&
-	corrupt_data $idx64 2999 "\02" &&
+	corrupt_data $idx64 $(test_oid idxoff) "\02" &&
 	midx64=$(git multi-pack-index --object-dir=objects64 write) &&
 	midx_read_expect 1 63 5 objects64 " large-offsets"
 '
Previous: brian m. carlsonNext: Eric Sunshine
Message 12 of 28 in “SHA-256 test fixes, part 7”
  1. 00/20 SHA-256 test fixes, part 7brian m. carlson, Dec 21, 2019
  2. 01/20 t4054: make hash-size independentbrian m. carlson, Dec 21, 2019
  3. 03/20 t4134: compute appropriate length constantbrian m. carlson, Dec 21, 2019
  4. 02/20 t4066: compute index line in diffsbrian m. carlson, Dec 21, 2019
  5. 04/20 t4200: make hash size independentbrian m. carlson, Dec 21, 2019
  6. 06/20 t4204: make hash size independentbrian m. carlson, Dec 21, 2019
  7. 08/20 t5318: update for SHA-256brian m. carlson, Dec 21, 2019
  8. 09/20 t5319: change invalid offset for SHA-256 compatibilitybrian m. carlson, Dec 21, 2019
  9. Derrick StoleeDec 26, 2019
  10. 07/20 t4300: abstract away SHA-1-specific constantsbrian m. carlson, Dec 21, 2019
  11. 11/20 t5324: make hash size independentbrian m. carlson, Dec 21, 2019
  12. 10/20 t5319: make test work with SHA-256brian m. carlson, Dec 21, 2019
  13. Eric SunshineDec 22, 2019
  14. brian m. carlsonDec 22, 2019
  15. Michael ClarkDec 23, 2019
  16. Derrick StoleeDec 26, 2019
  17. brian m. carlsonDec 27, 2019
  18. 13/20 t5510: make hash size independentbrian m. carlson, Dec 21, 2019
  19. 14/20 t5512: abstract away SHA-1-specific constantsbrian m. carlson, Dec 21, 2019
  20. 17/20 t5540: make hash size independentbrian m. carlson, Dec 21, 2019
  21. 12/20 t5504: make hash algorithm independentbrian m. carlson, Dec 21, 2019
  22. 15/20 t5530: compute results based on object lengthbrian m. carlson, Dec 21, 2019
  23. 19/20 t5601: switch into repository to hash objectbrian m. carlson, Dec 21, 2019
  24. 18/20 t5562: use $ZERO_OIDbrian m. carlson, Dec 21, 2019
  25. 20/20 t5604: make hash independentbrian m. carlson, Dec 21, 2019
  26. 16/20 t5537: make hash size independentbrian m. carlson, Dec 21, 2019
  27. 05/20 t4202: abstract away SHA-1-specific constantsbrian m. carlson, Dec 21, 2019
  28. Derrick StoleeDec 26, 2019

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.