Merge branch 'na/no-http-test-in-the-middle' into maint
authorJunio C Hamano <gitster@pobox.com>
Wed, 25 Jun 2014 18:50:13 +0000 (11:50 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 25 Jun 2014 18:50:13 +0000 (11:50 -0700)
The mode to run tests with HTTP server tests disabled was broken.

* na/no-http-test-in-the-middle:
  t5538: move http push tests out to t5542

t/t5538-push-shallow.sh
t/t5542-push-http-shallow.sh [new file with mode: 0755]

index 8e54ac5..ceee95b 100755 (executable)
@@ -120,63 +120,4 @@ EOF
        git cat-file blob `echo 1|git hash-object --stdin` >/dev/null
        )
 '
-
-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 'push to shallow repo via http' '
-       git clone --bare --no-local shallow "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
-       (
-       cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
-       git config http.receivepack true
-       ) &&
-       (
-       cd full &&
-       commit 9 &&
-       git push $HTTPD_URL/smart/repo.git +master:refs/remotes/top/master
-       ) &&
-       (
-       cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
-       git fsck &&
-       git log --format=%s top/master >actual &&
-       cat <<EOF >expect &&
-9
-4
-3
-EOF
-       test_cmp expect actual
-       )
-'
-
-test_expect_success 'push from shallow repo via http' '
-       mv "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" shallow-upstream.git &&
-       git clone --bare --no-local full "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
-       (
-       cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
-       git config http.receivepack true
-       ) &&
-       commit 10 &&
-       git push $HTTPD_URL/smart/repo.git +master:refs/remotes/top/master &&
-       (
-       cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
-       git fsck &&
-       git log --format=%s top/master >actual &&
-       cat <<EOF >expect &&
-10
-1
-4
-3
-2
-1
-EOF
-       test_cmp expect actual
-       )
-'
-
-stop_httpd
 test_done
diff --git a/t/t5542-push-http-shallow.sh b/t/t5542-push-http-shallow.sh
new file mode 100755 (executable)
index 0000000..2a691e0
--- /dev/null
@@ -0,0 +1,100 @@
+#!/bin/sh
+
+test_description='push from/to a shallow clone over http'
+
+. ./test-lib.sh
+
+if test -n "$NO_CURL"; then
+       say 'skipping test, git built without http support'
+       test_done
+fi
+
+. "$TEST_DIRECTORY"/lib-httpd.sh
+start_httpd
+
+commit() {
+       echo "$1" >tracked &&
+       git add tracked &&
+       git commit -m "$1"
+}
+
+test_expect_success 'setup' '
+       git config --global transfer.fsckObjects true &&
+       commit 1 &&
+       commit 2 &&
+       commit 3 &&
+       commit 4 &&
+       git clone . full &&
+       (
+       git init full-abc &&
+       cd full-abc &&
+       commit a &&
+       commit b &&
+       commit c
+       ) &&
+       git clone --no-local --depth=2 .git shallow &&
+       git --git-dir=shallow/.git log --format=%s >actual &&
+       cat <<EOF >expect &&
+4
+3
+EOF
+       test_cmp expect actual &&
+       git clone --no-local --depth=2 full-abc/.git shallow2 &&
+       git --git-dir=shallow2/.git log --format=%s >actual &&
+       cat <<EOF >expect &&
+c
+b
+EOF
+       test_cmp expect actual
+'
+
+test_expect_success 'push to shallow repo via http' '
+       git clone --bare --no-local shallow "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
+       (
+       cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
+       git config http.receivepack true
+       ) &&
+       (
+       cd full &&
+       commit 9 &&
+       git push $HTTPD_URL/smart/repo.git +master:refs/remotes/top/master
+       ) &&
+       (
+       cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
+       git fsck &&
+       git log --format=%s top/master >actual &&
+       cat <<EOF >expect &&
+9
+4
+3
+EOF
+       test_cmp expect actual
+       )
+'
+
+test_expect_success 'push from shallow repo via http' '
+       mv "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" shallow-upstream.git &&
+       git clone --bare --no-local full "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
+       (
+       cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
+       git config http.receivepack true
+       ) &&
+       commit 10 &&
+       git push $HTTPD_URL/smart/repo.git +master:refs/remotes/top/master &&
+       (
+       cd "$HTTPD_DOCUMENT_ROOT_PATH/repo.git" &&
+       git fsck &&
+       git log --format=%s top/master >actual &&
+       cat <<EOF >expect &&
+10
+4
+3
+2
+1
+EOF
+       test_cmp expect actual
+       )
+'
+
+stop_httpd
+test_done