All of lore.kernel.org
 help / color / mirror / Atom feed
From: "brian m. carlson" <sandals@crustytoothpaste.net>
To: <git@vger.kernel.org>
Cc: Derrick Stolee <dstolee@microsoft.com>,
	Junio C Hamano <gitster@pobox.com>
Subject: [PATCH 10/20] t5319: make test work with SHA-256
Date: Sat, 21 Dec 2019 19:49:26 +0000	[thread overview]
Message-ID: <20191221194936.1346664-11-sandals@crustytoothpaste.net> (raw)
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"
 '

  parent reply	other threads:[~2019-12-21 19:50 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-21 19:49 [PATCH 00/20] SHA-256 test fixes, part 7 brian m. carlson
2019-12-21 19:49 ` [PATCH 01/20] t4054: make hash-size independent brian m. carlson
2019-12-21 19:49 ` [PATCH 02/20] t4066: compute index line in diffs brian m. carlson
2019-12-21 19:49 ` [PATCH 03/20] t4134: compute appropriate length constant brian m. carlson
2019-12-21 19:49 ` [PATCH 04/20] t4200: make hash size independent brian m. carlson
2019-12-21 19:49 ` [PATCH 05/20] t4202: abstract away SHA-1-specific constants brian m. carlson
2019-12-21 19:49 ` [PATCH 06/20] t4204: make hash size independent brian m. carlson
2019-12-21 19:49 ` [PATCH 07/20] t4300: abstract away SHA-1-specific constants brian m. carlson
2019-12-21 19:49 ` [PATCH 08/20] t5318: update for SHA-256 brian m. carlson
2019-12-21 19:49 ` [PATCH 09/20] t5319: change invalid offset for SHA-256 compatibility brian m. carlson
2019-12-26 14:36   ` Derrick Stolee
2019-12-21 19:49 ` brian m. carlson [this message]
2019-12-22  0:06   ` [PATCH 10/20] t5319: make test work with SHA-256 Eric Sunshine
2019-12-22 17:47     ` brian m. carlson
2019-12-23  1:25       ` Michael Clark
2019-12-26 14:50   ` Derrick Stolee
2019-12-27 21:35     ` brian m. carlson
2019-12-21 19:49 ` [PATCH 11/20] t5324: make hash size independent brian m. carlson
2019-12-21 19:49 ` [PATCH 12/20] t5504: make hash algorithm independent brian m. carlson
2019-12-21 19:49 ` [PATCH 13/20] t5510: make hash size independent brian m. carlson
2019-12-21 19:49 ` [PATCH 14/20] t5512: abstract away SHA-1-specific constants brian m. carlson
2019-12-21 19:49 ` [PATCH 15/20] t5530: compute results based on object length brian m. carlson
2019-12-21 19:49 ` [PATCH 16/20] t5537: make hash size independent brian m. carlson
2019-12-21 19:49 ` [PATCH 17/20] t5540: " brian m. carlson
2019-12-21 19:49 ` [PATCH 18/20] t5562: use $ZERO_OID brian m. carlson
2019-12-21 19:49 ` [PATCH 19/20] t5601: switch into repository to hash object brian m. carlson
2019-12-21 19:49 ` [PATCH 20/20] t5604: make hash independent brian m. carlson
2019-12-26 14:51 ` [PATCH 00/20] SHA-256 test fixes, part 7 Derrick Stolee

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191221194936.1346664-11-sandals@crustytoothpaste.net \
    --to=sandals@crustytoothpaste.net \
    --cc=dstolee@microsoft.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.