)
'
-if test -n "$NO_CURL" -o -z "$GIT_TEST_HTTPD"; then
- say 'skipping remaining tests, git built without http support'
- test_done
-fi
-
-. "$TEST_DIRECTORY"/lib-httpd.sh
-start_httpd
-
-test_expect_success 'clone http repository' '
- git clone --bare --no-local shallow "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
- git clone $HTTPD_URL/smart/repo.git clone &&
- (
- cd clone &&
- git fsck &&
- git log --format=%s origin/master >actual &&
- cat <<EOF >expect &&
-7
-6
-5
-4
-3
-EOF
- test_cmp expect actual
- )
-'
-
-# This test is tricky. We need large enough "have"s that fetch-pack
-# will put pkt-flush in between. Then we need a "have" the server
-# does not have, it'll send "ACK %s ready"
-test_expect_success 'no shallow lines after receiving ACK ready' '
- (
- cd shallow &&
- for i in $(test_seq 10)
- do
- git checkout --orphan unrelated$i &&
- test_commit unrelated$i &&
- git push -q "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" \
- refs/heads/unrelated$i:refs/heads/unrelated$i &&
- git push -q ../clone/.git \
- refs/heads/unrelated$i:refs/heads/unrelated$i ||
- exit 1
- done &&
- git checkout master &&
- test_commit new &&
- git push "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" master
- ) &&
- (
- cd clone &&
- git checkout --orphan newnew &&
- test_commit new-too &&
- GIT_TRACE_PACKET="$TRASH_DIRECTORY/trace" git fetch --depth=2 &&
- grep "fetch-pack< ACK .* ready" ../trace &&
- ! grep "fetch-pack> done" ../trace
- )
-'
-
-stop_httpd
test_done