X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=t%2Ft5300-pack-object.sh;h=f336769836f794c390d6e0ddd19f98da5c7b6e40;hb=6169a89c4fd29cf9c747bab7bd310877328bc7e2;hp=eacb1e92c20bf0efef069ff5ec0af792f95b1252;hpb=3635a187704ed30b32eb11f5098496e5e435a19d;p=git.git diff --git a/t/t5300-pack-object.sh b/t/t5300-pack-object.sh index eacb1e92c..f33676983 100755 --- a/t/t5300-pack-object.sh +++ b/t/t5300-pack-object.sh @@ -123,11 +123,12 @@ test_expect_success \ done' cd "$TRASH" -test_expect_success \ - 'compare delta flavors' \ - 'size_2=`stat -c "%s" test-2-${packname_2}.pack` && - size_3=`stat -c "%s" test-3-${packname_3}.pack` && - test $size_2 -gt $size_3' +test_expect_success 'compare delta flavors' ' + perl -e '\'' + defined($_ = -s $_) or die for @ARGV; + exit 1 if $ARGV[0] <= $ARGV[1]; + '\'' test-2-$packname_2.pack test-3-$packname_3.pack +' rm -fr .git2 mkdir .git2 @@ -151,7 +152,7 @@ test_expect_success \ 'use packed deltified (REF_DELTA) objects' \ 'GIT_OBJECT_DIRECTORY=.git2/objects && export GIT_OBJECT_DIRECTORY && - rm .git2/objects/pack/test-* && + rm -f .git2/objects/pack/test-* && cp test-2-${packname_2}.pack test-2-${packname_2}.idx .git2/objects/pack && { git-diff-tree --root -p $commit && while read object @@ -166,7 +167,7 @@ test_expect_success \ 'use packed deltified (OFS_DELTA) objects' \ 'GIT_OBJECT_DIRECTORY=.git2/objects && export GIT_OBJECT_DIRECTORY && - rm .git2/objects/pack/test-* && + rm -f .git2/objects/pack/test-* && cp test-3-${packname_3}.pack test-3-${packname_3}.idx .git2/objects/pack && { git-diff-tree --root -p $commit && while read object @@ -187,15 +188,15 @@ test_expect_success \ test_expect_success \ 'corrupt a pack and see if verify catches' \ - 'cp test-1-${packname_1}.idx test-3.idx && - cp test-2-${packname_2}.pack test-3.pack && + 'cat test-1-${packname_1}.idx >test-3.idx && + cat test-2-${packname_2}.pack >test-3.pack && if git-verify-pack test-3.idx then false else :; fi && : PACK_SIGNATURE && - cp test-1-${packname_1}.pack test-3.pack && + cat test-1-${packname_1}.pack >test-3.pack && dd if=/dev/zero of=test-3.pack count=1 bs=1 conv=notrunc seek=2 && if git-verify-pack test-3.idx then false @@ -203,7 +204,7 @@ test_expect_success \ fi && : PACK_VERSION && - cp test-1-${packname_1}.pack test-3.pack && + cat test-1-${packname_1}.pack >test-3.pack && dd if=/dev/zero of=test-3.pack count=1 bs=1 conv=notrunc seek=7 && if git-verify-pack test-3.idx then false @@ -211,7 +212,7 @@ test_expect_success \ fi && : TYPE/SIZE byte of the first packed object data && - cp test-1-${packname_1}.pack test-3.pack && + cat test-1-${packname_1}.pack >test-3.pack && dd if=/dev/zero of=test-3.pack count=1 bs=1 conv=notrunc seek=12 && if git-verify-pack test-3.idx then false @@ -221,7 +222,7 @@ test_expect_success \ : sum of the index file itself && l=`wc -c test-3.pack && dd if=/dev/zero of=test-3.idx count=20 bs=1 conv=notrunc seek=$l && if git-verify-pack test-3.pack then false @@ -232,21 +233,21 @@ test_expect_success \ test_expect_success \ 'build pack index for an existing pack' \ - 'cp test-1-${packname_1}.pack test-3.pack && + 'cat test-1-${packname_1}.pack >test-3.pack && git-index-pack -o tmp.idx test-3.pack && cmp tmp.idx test-1-${packname_1}.idx && git-index-pack test-3.pack && cmp test-3.idx test-1-${packname_1}.idx && - cp test-2-${packname_2}.pack test-3.pack && + cat test-2-${packname_2}.pack >test-3.pack && git-index-pack -o tmp.idx test-2-${packname_2}.pack && cmp tmp.idx test-2-${packname_2}.idx && git-index-pack test-3.pack && cmp test-3.idx test-2-${packname_2}.idx && - cp test-3-${packname_3}.pack test-3.pack && + cat test-3-${packname_3}.pack >test-3.pack && git-index-pack -o tmp.idx test-3-${packname_3}.pack && cmp tmp.idx test-3-${packname_3}.idx && @@ -255,4 +256,14 @@ test_expect_success \ :' +test_expect_success \ + 'fake a SHA1 hash collision' \ + 'test -f .git/objects/c8/2de19312b6c3695c0c18f70709a6c535682a67 && + cp -f .git/objects/9d/235ed07cd19811a6ceb342de82f190e49c9f68 \ + .git/objects/c8/2de19312b6c3695c0c18f70709a6c535682a67' + +test_expect_failure \ + 'make sure index-pack detects the SHA1 collision' \ + 'git-index-pack -o bad.idx test-3.pack' + test_done