]> git.ipfire.org Git - thirdparty/git.git/blobdiff - t/t5319-multi-pack-index.sh
t2060: add a test for switch with --orphan and --discard-changes
[thirdparty/git.git] / t / t5319-multi-pack-index.sh
index cd2f87be6afe241a35e7c3b20fac09d10908f633..43a7a66c9d1b50640775d6b38df7a31b32e8e548 100755 (executable)
@@ -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))
@@ -304,12 +318,12 @@ test_expect_success 'verify incorrect pack-int-id' '
 '
 
 test_expect_success 'verify incorrect offset' '
-       corrupt_midx_and_verify $MIDX_BYTE_OFFSET "\07" $objdir \
+       corrupt_midx_and_verify $MIDX_BYTE_OFFSET "\377" $objdir \
                "incorrect object offset"
 '
 
 test_expect_success 'git-fsck incorrect offset' '
-       corrupt_midx_and_verify $MIDX_BYTE_OFFSET "\07" $objdir \
+       corrupt_midx_and_verify $MIDX_BYTE_OFFSET "\377" $objdir \
                "incorrect object offset" \
                "git -c core.multipackindex=true fsck"
 '
@@ -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"
 '