#!/bin/sh # # Copyright (c) 2007 Nicolas Pitre # setglobal test_description = ''pack index with 64-bit offsets and object CRC'' source ./test-lib.sh test_expect_success \ 'setup' \ 'rm -rf .git && git init && git config pack.threads 1 && i=1 && while test $i -le 100 do iii=$(printf '%03i' $i) test-genrandom "bar" 200 > wide_delta_$iii && test-genrandom "baz $iii" 50 >> wide_delta_$iii && test-genrandom "foo"$i 100 > deep_delta_$iii && test-genrandom "foo"$(expr $i + 1) 100 >> deep_delta_$iii && test-genrandom "foo"$(expr $i + 2) 100 >> deep_delta_$iii && echo $iii >file_$iii && test-genrandom "$iii" 8192 >>file_$iii && git update-index --add file_$iii deep_delta_$iii wide_delta_$iii && i=$(expr $i + 1) || return 1 done && { echo 101 && test-genrandom 100 8192; } >file_101 && git update-index --add file_101 && tree=$(git write-tree) && commit=$(git commit-tree $tree obj-list && git update-ref HEAD $commit' test_expect_success \ 'pack-objects with index version 1' \ 'pack1=$(git pack-objects --index-version=1 test-1 file_101_foo1' test_expect_success \ '[index v1] 3) corrupted delta happily returned wrong data' \ 'test -f file_101_foo1 && ! cmp file_101 file_101_foo1' test_expect_success \ '[index v1] 4) confirm that the pack is actually corrupted' \ 'test_must_fail git fsck --full $commit' test_expect_success \ '[index v1] 5) pack-objects happily reuses corrupted data' \ 'pack4=$(git pack-objects test-4 file_101_foo2' test_expect_success \ '[index v2] 3) corrupted delta happily returned wrong data' \ 'test -f file_101_foo2 && ! cmp file_101 file_101_foo2' test_expect_success \ '[index v2] 4) confirm that the pack is actually corrupted' \ 'test_must_fail git fsck --full $commit' test_expect_success \ '[index v2] 5) pack-objects refuses to reuse corrupted data' \ 'test_must_fail git pack-objects test-5 /dev/null || exit 1 done wrong-tag <err && grep "^warning:.* expected .tagger. line" err ' test_done