1
0
mirror of https://github.com/git/git synced 2024-06-30 22:54:27 +00:00

Merge branch 'jk/t1006-cat-file-objectsize-disk' into maint-2.43

Test update.

* jk/t1006-cat-file-objectsize-disk:
  t1006: prefer shell loop to awk for packed object sizes
  t1006: add tests for %(objectsize:disk)
This commit is contained in:
Junio C Hamano 2024-02-08 16:22:11 -08:00
commit fb3ead665b

View File

@ -1100,6 +1100,42 @@ test_expect_success 'cat-file --batch="batman" with --batch-all-objects will wor
cmp expect actual
'
test_expect_success 'cat-file %(objectsize:disk) with --batch-all-objects' '
# our state has both loose and packed objects,
# so find both for our expected output
{
find .git/objects/?? -type f |
awk -F/ "{ print \$0, \$3\$4 }" |
while read path oid
do
size=$(test_file_size "$path") &&
echo "$oid $size" ||
return 1
done &&
rawsz=$(test_oid rawsz) &&
find .git/objects/pack -name "*.idx" |
while read idx
do
git show-index <"$idx" >idx.raw &&
sort -nr <idx.raw >idx.sorted &&
packsz=$(test_file_size "${idx%.idx}.pack") &&
end=$((packsz - rawsz)) &&
while read start oid rest
do
size=$((end - start)) &&
end=$start &&
echo "$oid $size" ||
return 1
done <idx.sorted ||
return 1
done
} >expect.raw &&
sort <expect.raw >expect &&
git cat-file --batch-all-objects \
--batch-check="%(objectname) %(objectsize:disk)" >actual &&
test_cmp expect actual
'
test_expect_success 'set up replacement object' '
orig=$(git rev-parse HEAD) &&
git cat-file commit $orig >orig &&