diff options
author | Nicolas Pitre <nico@cam.org> | 2007-03-16 13:50:18 -0400 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-03-16 21:27:36 -0700 |
commit | ac527b0b7c9be37ad7f2f7d871b6e9b41fd0c431 (patch) | |
tree | 4d8f6a4d5426966ae3d4b13476d2b8f04e92546c /t | |
parent | 82868f72b5393d3dbe3ef976dba8d5aa63ffddc3 (diff) | |
download | git-ac527b0b7c9be37ad7f2f7d871b6e9b41fd0c431.tar.gz git-ac527b0b7c9be37ad7f2f7d871b6e9b41fd0c431.tar.xz |
[PATCH] add test for OFS_DELTA objects
Make sure pack-objects with --delta-base-offset works fine, and that
it actually produces smaller packs as expected.
Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 't')
-rwxr-xr-x | t/t5300-pack-object.sh | 71 |
1 files changed, 65 insertions, 6 deletions
diff --git a/t/t5300-pack-object.sh b/t/t5300-pack-object.sh index 17befde75..eacb1e92c 100755 --- a/t/t5300-pack-object.sh +++ b/t/t5300-pack-object.sh @@ -64,7 +64,7 @@ test_expect_success \ cd "$TRASH" test_expect_success \ - 'pack with delta' \ + 'pack with REF_DELTA' \ 'pwd && packname_2=$(git-pack-objects test-2 <obj-list)' @@ -72,7 +72,7 @@ rm -fr .git2 mkdir .git2 test_expect_success \ - 'unpack with delta' \ + 'unpack with REF_DELTA' \ 'GIT_OBJECT_DIRECTORY=.git2/objects && export GIT_OBJECT_DIRECTORY && git-init && @@ -82,7 +82,7 @@ test_expect_success \ unset GIT_OBJECT_DIRECTORY cd "$TRASH/.git2" test_expect_success \ - 'check unpack with delta' \ + 'check unpack with REF_DELTA' \ '(cd ../.git && find objects -type f -print) | while read path do @@ -93,6 +93,42 @@ test_expect_success \ done' cd "$TRASH" +test_expect_success \ + 'pack with OFS_DELTA' \ + 'pwd && + packname_3=$(git-pack-objects --delta-base-offset test-3 <obj-list)' + +rm -fr .git2 +mkdir .git2 + +test_expect_success \ + 'unpack with OFS_DELTA' \ + 'GIT_OBJECT_DIRECTORY=.git2/objects && + export GIT_OBJECT_DIRECTORY && + git-init && + git-unpack-objects -n <test-3-${packname_3}.pack && + git-unpack-objects <test-3-${packname_3}.pack' + +unset GIT_OBJECT_DIRECTORY +cd "$TRASH/.git2" +test_expect_success \ + 'check unpack with OFS_DELTA' \ + '(cd ../.git && find objects -type f -print) | + while read path + do + cmp $path ../.git/$path || { + echo $path differs. + return 1 + } + 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' + rm -fr .git2 mkdir .git2 @@ -111,9 +147,8 @@ test_expect_success \ } >current && diff expect current' - test_expect_success \ - 'use packed deltified objects' \ + 'use packed deltified (REF_DELTA) objects' \ 'GIT_OBJECT_DIRECTORY=.git2/objects && export GIT_OBJECT_DIRECTORY && rm .git2/objects/pack/test-* && @@ -127,11 +162,28 @@ test_expect_success \ } >current && diff expect current' +test_expect_success \ + 'use packed deltified (OFS_DELTA) objects' \ + 'GIT_OBJECT_DIRECTORY=.git2/objects && + export GIT_OBJECT_DIRECTORY && + rm .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 + do + t=`git-cat-file -t $object` && + git-cat-file $t $object || return 1 + done <obj-list + } >current && + diff expect current' + unset GIT_OBJECT_DIRECTORY test_expect_success \ 'verify pack' \ - 'git-verify-pack test-1-${packname_1}.idx test-2-${packname_2}.idx' + 'git-verify-pack test-1-${packname_1}.idx \ + test-2-${packname_2}.idx \ + test-3-${packname_3}.idx' test_expect_success \ 'corrupt a pack and see if verify catches' \ @@ -194,6 +246,13 @@ test_expect_success \ git-index-pack test-3.pack && cmp test-3.idx test-2-${packname_2}.idx && + cp 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 && + + git-index-pack test-3.pack && + cmp test-3.idx test-3-${packname_3}.idx && + :' test_done |