X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=t%2Ft5500-fetch-pack.sh;h=f7625a6f4634da4b78c90defdc0a302c8ea4e231;hb=1010437d515a2740b7c0f3eeecf6af804062a9ff;hp=0781bd287ee37f537c6d69e07ad6073c638faa1c;hpb=c2f3bf071ee90b01f2d629921bb04c4f798f02fa;p=git.git diff --git a/t/t5500-fetch-pack.sh b/t/t5500-fetch-pack.sh index 0781bd28..f7625a6f 100755 --- a/t/t5500-fetch-pack.sh +++ b/t/t5500-fetch-pack.sh @@ -12,16 +12,11 @@ test_description='Testing multi_ack pack fetching # Some convenience functions -function show_count () { - commit_count=$(($commit_count+1)) - printf " %d\r" $commit_count -} - -function add () { - local name=$1 - local text="$@" - local branch=${name:0:1} - local parents="" +add () { + name=$1 + text="$@" + branch=`echo $name | sed -e 's/^\(.\).*$/\1/'` + parents="" shift while test $1; do @@ -41,13 +36,13 @@ function add () { eval ${branch}TIP=$commit } -function count_objects () { +count_objects () { ls .git/objects/??/* 2>>log2.txt | wc -l | tr -d " " } -function test_expect_object_count () { - local message=$1 - local count=$2 +test_expect_object_count () { + message=$1 + count=$2 output="$(count_objects)" test_expect_success \ @@ -55,28 +50,31 @@ function test_expect_object_count () { "test $count = $output" } -function test_repack () { - local rep=$1 - - test_expect_success "repack && prune-packed in $rep" \ - '(git-repack && git-prune-packed)2>>log.txt' -} - -function pull_to_client () { - local number=$1 - local heads=$2 - local count=$3 - local no_strict_count_check=$4 +pull_to_client () { + number=$1 + heads=$2 + count=$3 + no_strict_count_check=$4 cd client test_expect_success "$number pull" \ - "git-fetch-pack -v .. $heads > log.txt 2>&1" + "git-fetch-pack -k -v .. $heads" case "$heads" in *A*) echo $ATIP > .git/refs/heads/A;; esac case "$heads" in *B*) echo $BTIP > .git/refs/heads/B;; esac - git-symbolic-ref HEAD refs/heads/${heads:0:1} + git-symbolic-ref HEAD refs/heads/`echo $heads | sed -e 's/^\(.\).*$/\1/'` + test_expect_success "fsck" 'git-fsck-objects --full > fsck.txt 2>&1' - test_expect_object_count "after $number pull" $count - pack_count=$(grep Packing log.txt|tr -dc "0-9") + + test_expect_success 'check downloaded results' \ + 'mv .git/objects/pack/pack-* . && + p=`ls -1 pack-*.pack` && + git-unpack-objects <$p && + git-fsck-objects --full' + + test_expect_success "new object count after $number pull" \ + 'idx=`echo pack-*.idx` && + pack_count=`git-show-index <$idx | wc -l` && + test $pack_count = $count' test -z "$pack_count" && pack_count=0 if [ -z "$no_strict_count_check" ]; then test_expect_success "minimal count" "test $count = $pack_count" @@ -84,6 +82,7 @@ function pull_to_client () { test $count != $pack_count && \ echo "WARNING: $pack_count objects transmitted, only $count of which were needed" fi + rm -f pack-* cd .. } @@ -117,8 +116,6 @@ git-symbolic-ref HEAD refs/heads/B pull_to_client 1st "B A" $((11*3)) -(cd client; test_repack client) - add A11 $A10 prev=1; cur=2; while [ $cur -le 65 ]; do @@ -129,8 +126,6 @@ done pull_to_client 2nd "B" $((64*3)) -(cd client; test_repack client) - pull_to_client 3rd "A" $((1*3)) # old fails test_done