csum-file: fix missing buf pointer update
[gitweb.git] / t / t5300-pack-object.sh
index 171af643e50768e4ccf4a45b142fbf70be9f04d6..901653656a3d73fb8f0a6d736e3dd712792e8b22 100755 (executable)
@@ -19,10 +19,19 @@ test_expect_success \
             git-update-cache --add $i || exit
      done &&
      cat c >d && echo foo >>d && git-update-cache --add d &&
-     tree=`git-write-tree` && {
+     tree=`git-write-tree` &&
+     commit=`git-commit-tree $tree </dev/null` && {
         echo $tree &&
+        echo $commit &&
         git-ls-tree $tree | sed -e "s/.* \\([0-9a-f]*\\)       .*/\\1/"
-     } >obj-list'
+     } >obj-list && {
+        git-diff-tree --root -p $commit &&
+        while read object
+        do
+           t=`git-cat-file -t $object` &&
+           git-cat-file $t $object || exit 1
+        done <obj-list
+     } >expect'
 
 test_expect_success \
     'pack without delta' \
@@ -82,4 +91,39 @@ test_expect_success \
      done'
 cd $TRASH
 
+rm -fr .git2
+mkdir .git2
+
+test_expect_success \
+    'use packed objects' \
+    'GIT_OBJECT_DIRECTORY=.git2/objects &&
+     export GIT_OBJECT_DIRECTORY &&
+     git-init-db &&
+     mkdir .git2/objects/pack &&
+     cp test-1.pack test-1.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 || exit 1
+        done <obj-list
+    } >current &&
+    diff expect current'
+
+
+test_expect_success \
+    'use packed deltified objects' \
+    'GIT_OBJECT_DIRECTORY=.git2/objects &&
+     export GIT_OBJECT_DIRECTORY &&
+     rm -f .git2/objects/pack/test-?.idx &&
+     cp test-2.pack test-2.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 || exit 1
+        done <obj-list
+    } >current &&
+    diff expect current'
+
 test_done