@ -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