Browse Source

t5313: make test hash independent

Make this test hash independent by computing the length of the object
offsets and looking up values which will hash to object IDs with the
right properties.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
brian m. carlson 5 years ago committed by Junio C Hamano
parent
commit
a30f93b143
  1. 19
      t/t5313-pack-bounds-checks.sh

19
t/t5313-pack-bounds-checks.sh

@ -38,16 +38,27 @@ munge () {
# for the initial, and another ofs(4*nr) past that for the extended. # for the initial, and another ofs(4*nr) past that for the extended.
# #
ofs_table () { ofs_table () {
echo $((4 + 4 + 4*256 + 20*$1 + 4*$1)) echo $((4 + 4 + 4*256 + $(test_oid rawsz)*$1 + 4*$1))
} }
extended_table () { extended_table () {
echo $(($(ofs_table "$1") + 4*$1)) echo $(($(ofs_table "$1") + 4*$1))
} }


test_expect_success 'setup' '
test_oid_init &&
test_oid_cache <<-EOF
oid000 sha1:1485
oid000 sha256:4222

oidfff sha1:74
oidfff sha256:1350
EOF
'

test_expect_success 'set up base packfile and variables' ' test_expect_success 'set up base packfile and variables' '
# the hash of this content starts with ff, which # the hash of this content starts with ff, which
# makes some later computations much simpler # makes some later computations much simpler
echo 74 >file && echo $(test_oid oidfff) >file &&
git add file && git add file &&
git commit -m base && git commit -m base &&
git repack -ad && git repack -ad &&
@ -140,10 +151,10 @@ test_expect_success 'bogus offset inside v2 extended table' '
# an extended table (if the first object were larger than 2^31). # an extended table (if the first object were larger than 2^31).
# #
# Note that the value is important here. We want $object as # Note that the value is important here. We want $object as
# the second entry in sorted-sha1 order. The sha1 of 1485 starts # the second entry in sorted-hash order. The hash of this object starts
# with "000", which sorts before that of $object (which starts # with "000", which sorts before that of $object (which starts
# with "fff"). # with "fff").
second=$(echo 1485 | git hash-object -w --stdin) && second=$(test_oid oid000 | git hash-object -w --stdin) &&
do_pack "$object $second" --index-version=2 && do_pack "$object $second" --index-version=2 &&


# We have to make extra room for the table, so we cannot # We have to make extra room for the table, so we cannot

Loading…
Cancel
Save