Fourth batch
[gitweb.git] / t / t5500-fetch-pack.sh
index 1b5a4a6d380f37b0e616e5ca6c5fd5b732e6383d..5115711562f5c90780aa3e99910f18de066a08f7 100755 (executable)
@@ -50,8 +50,11 @@ pull_to_client () {
                        case "$heads" in *B*)
                            git update-ref refs/heads/B "$BTIP";;
                        esac &&
-                       git symbolic-ref HEAD refs/heads/$(echo $heads \
-                               | sed -e "s/^\(.\).*$/\1/") &&
+
+                       git symbolic-ref HEAD refs/heads/$(
+                               echo $heads |
+                               sed -e "s/^\(.\).*$/\1/"
+                       ) &&
 
                        git fsck --full &&
 
@@ -436,15 +439,23 @@ test_expect_success 'setup tests for the --stdin parameter' '
        ) >input.dup
 '
 
-test_expect_success 'fetch refs from cmdline' '
-       (
-               cd client &&
-               git fetch-pack --no-progress .. $(cat ../input)
-       ) >output &&
-       cut -d " " -f 2 <output | sort >actual &&
-       test_cmp expect actual
+test_expect_success 'setup fetch refs from cmdline v[12]' '
+       cp -r client client1 &&
+       cp -r client client2
 '
 
+for version in '' 1 2
+do
+       test_expect_success "protocol.version=$version fetch refs from cmdline" "
+               (
+                       cd client$version &&
+                       GIT_TEST_PROTOCOL_VERSION=$version git fetch-pack --no-progress .. \$(cat ../input)
+               ) >output &&
+               cut -d ' ' -f 2 <output | sort >actual &&
+               test_cmp expect actual
+       "
+done
+
 test_expect_success 'fetch refs from stdin' '
        (
                cd client &&
@@ -625,7 +636,9 @@ test_expect_success 'fetch-pack cannot fetch a raw sha1 that is not advertised a
        test_commit -C server 6 &&
 
        git init client &&
-       test_must_fail git -C client fetch-pack ../server \
+       # Some protocol versions (e.g. 2) support fetching
+       # unadvertised objects, so restrict this test to v0.
+       test_must_fail env GIT_TEST_PROTOCOL_VERSION= git -C client fetch-pack ../server \
                $(git -C server rev-parse refs/heads/master^) 2>err &&
        test_i18ngrep "Server does not allow request for unadvertised object" err
 '
@@ -695,13 +708,22 @@ do
        # file with scheme
        for p in file
        do
-               test_expect_success "fetch-pack --diag-url $p://$h/$r" '
+               test_expect_success !MINGW "fetch-pack --diag-url $p://$h/$r" '
                        check_prot_path $p://$h/$r $p "/$r"
                '
+               test_expect_success MINGW "fetch-pack --diag-url $p://$h/$r" '
+                       check_prot_path $p://$h/$r $p "//$h/$r"
+               '
+               test_expect_success MINGW "fetch-pack --diag-url $p:///$r" '
+                       check_prot_path $p:///$r $p "/$r"
+               '
                # No "/~" -> "~" conversion for file
-               test_expect_success "fetch-pack --diag-url $p://$h/~$r" '
+               test_expect_success !MINGW "fetch-pack --diag-url $p://$h/~$r" '
                        check_prot_path $p://$h/~$r $p "/~$r"
                '
+               test_expect_success MINGW "fetch-pack --diag-url $p://$h/~$r" '
+                       check_prot_path $p://$h/~$r $p "//$h/~$r"
+               '
        done
        # file without scheme
        for h in nohost nohost:12 [::1] [::1]:23 [ [:aa
@@ -907,7 +929,7 @@ test_expect_success 'fetch with --filter=blob:limit=0 and HTTP' '
        fetch_filter_blob_limit_zero "$HTTPD_DOCUMENT_ROOT_PATH/server" "$HTTPD_URL/smart/server"
 '
 
-stop_httpd
-
+# DO NOT add non-httpd-specific tests here, because the last part of this
+# test script is only executed when httpd is available and enabled.
 
 test_done