]> git.ipfire.org Git - thirdparty/git.git/commitdiff
test: request GIT_TEST_PROTOCOL_VERSION=0 when appropriate
authorJonathan Nieder <jrnieder@gmail.com>
Tue, 24 Dec 2019 01:01:10 +0000 (17:01 -0800)
committerJunio C Hamano <gitster@pobox.com>
Wed, 15 Jan 2020 22:03:55 +0000 (14:03 -0800)
Since 8cbeba0632 (tests: define GIT_TEST_PROTOCOL_VERSION,
2019-02-25), it has been possible to run tests with a newer protocol
version by setting the GIT_TEST_PROTOCOL_VERSION envvar to a version
number.  Tests that assume protocol v0 handle this by explicitly
setting

GIT_TEST_PROTOCOL_VERSION=

or similar constructs like 'test -z "$GIT_TEST_PROTOCOL_VERSION" ||
return 0' to declare that they only handle the default (v0) protocol.

The emphasis there is a bit off: it would be clearer to specify
GIT_TEST_PROTOCOL_VERSION=0 to inform the reader that these tests are
specifically testing and relying on details of protocol v0.  Do so.

This way, a reader does not need to know what the default protocol
version is, and the tests can continue to work when the default
protocol version used by Git advances past v0.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t5400-send-pack.sh
t/t5500-fetch-pack.sh
t/t5512-ls-remote.sh
t/t5515-fetch-merge-logic.sh
t/t5516-fetch-push.sh
t/t5539-fetch-http-shallow.sh
t/t5541-http-push-smart.sh
t/t5551-http-fetch-smart.sh
t/t5552-skipping-fetch-negotiator.sh
t/t5700-protocol-v1.sh
t/t7406-submodule-update.sh

index 571d620aedbac122960b319130ebad64a49d4f5b..b84618c925fe014c1cf277da8825ec0a104c18ef 100755 (executable)
@@ -288,7 +288,7 @@ test_expect_success 'receive-pack de-dupes .have lines' '
        $shared .have
        EOF
 
-       GIT_TRACE_PACKET=$(pwd)/trace GIT_TEST_PROTOCOL_VERSION= \
+       GIT_TRACE_PACKET=$(pwd)/trace GIT_TEST_PROTOCOL_VERSION=0 \
            git push \
                --receive-pack="unset GIT_TRACE_PACKET; git-receive-pack" \
                fork HEAD:foo &&
index 964930b2d230ae2c024c011ba51cf4c4c75b7977..baa1a99f45f8540b1c5c91841e9797e85e902b63 100755 (executable)
@@ -440,11 +440,12 @@ test_expect_success 'setup tests for the --stdin parameter' '
 '
 
 test_expect_success 'setup fetch refs from cmdline v[12]' '
+       cp -r client client0 &&
        cp -r client client1 &&
        cp -r client client2
 '
 
-for version in '' 1 2
+for version in '' 1 2
 do
        test_expect_success "protocol.version=$version fetch refs from cmdline" "
                (
@@ -638,7 +639,7 @@ test_expect_success 'fetch-pack cannot fetch a raw sha1 that is not advertised a
        git init client &&
        # 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 \
+       test_must_fail env GIT_TEST_PROTOCOL_VERSION=0 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
 '
index d7b9f9078f6f95e866c6a0dec68511681f1957d6..459d1fcddf7b0c472ecac2ec50ea399fb7262d02 100755 (executable)
@@ -225,7 +225,7 @@ test_expect_success 'ls-remote --symref' '
        EOF
        # Protocol v2 supports sending symrefs for refs other than HEAD, so use
        # protocol v0 here.
-       GIT_TEST_PROTOCOL_VERSION= git ls-remote --symref >actual &&
+       GIT_TEST_PROTOCOL_VERSION=0 git ls-remote --symref >actual &&
        test_cmp expect actual
 '
 
@@ -236,7 +236,7 @@ test_expect_success 'ls-remote with filtered symref (refname)' '
        EOF
        # Protocol v2 supports sending symrefs for refs other than HEAD, so use
        # protocol v0 here.
-       GIT_TEST_PROTOCOL_VERSION= git ls-remote --symref . HEAD >actual &&
+       GIT_TEST_PROTOCOL_VERSION=0 git ls-remote --symref . HEAD >actual &&
        test_cmp expect actual
 '
 
@@ -249,7 +249,7 @@ test_expect_failure 'ls-remote with filtered symref (--heads)' '
        EOF
        # Protocol v2 supports sending symrefs for refs other than HEAD, so use
        # protocol v0 here.
-       GIT_TEST_PROTOCOL_VERSION= git ls-remote --symref --heads . >actual &&
+       GIT_TEST_PROTOCOL_VERSION=0 git ls-remote --symref --heads . >actual &&
        test_cmp expect actual
 '
 
@@ -260,9 +260,9 @@ test_expect_success 'ls-remote --symref omits filtered-out matches' '
        EOF
        # Protocol v2 supports sending symrefs for refs other than HEAD, so use
        # protocol v0 here.
-       GIT_TEST_PROTOCOL_VERSION= git ls-remote --symref --heads . >actual &&
+       GIT_TEST_PROTOCOL_VERSION=0 git ls-remote --symref --heads . >actual &&
        test_cmp expect actual &&
-       GIT_TEST_PROTOCOL_VERSION= git ls-remote --symref . "refs/heads/*" >actual &&
+       GIT_TEST_PROTOCOL_VERSION=0 git ls-remote --symref . "refs/heads/*" >actual &&
        test_cmp expect actual
 '
 
index 961eb35c99db6ba4d740f707cd17c7357a3aad0a..a9a7d50d3eb83654262fcbc3b8f533d0ded4c687 100755 (executable)
@@ -8,7 +8,8 @@ test_description='Merge logic in fetch'
 
 # NEEDSWORK: If the overspecification of the expected result is reduced, we
 # might be able to run this test in all protocol versions.
-GIT_TEST_PROTOCOL_VERSION=
+GIT_TEST_PROTOCOL_VERSION=0
+export GIT_TEST_PROTOCOL_VERSION
 
 . ./test-lib.sh
 
index c81ca360ac4ac9edccf86132aa63e44812906980..f12cbef09728d9c49b0ad66eab77c57043df0596 100755 (executable)
@@ -1151,7 +1151,7 @@ test_expect_success 'fetch exact SHA1' '
                # unadvertised objects, so restrict this test to v0.
 
                # fetching the hidden object should fail by default
-               test_must_fail env GIT_TEST_PROTOCOL_VERSION= \
+               test_must_fail env GIT_TEST_PROTOCOL_VERSION=0 \
                        git fetch -v ../testrepo $the_commit:refs/heads/copy 2>err &&
                test_i18ngrep "Server does not allow request for unadvertised object" err &&
                test_must_fail git rev-parse --verify refs/heads/copy &&
@@ -1210,7 +1210,7 @@ do
                        cd shallow &&
                        # Some protocol versions (e.g. 2) support fetching
                        # unadvertised objects, so restrict this test to v0.
-                       test_must_fail env GIT_TEST_PROTOCOL_VERSION= \
+                       test_must_fail env GIT_TEST_PROTOCOL_VERSION=0 \
                                git fetch --depth=1 ../testrepo/.git $SHA1 &&
                        git --git-dir=../testrepo/.git config uploadpack.allowreachablesha1inwant true &&
                        git fetch --depth=1 ../testrepo/.git $SHA1 &&
@@ -1241,9 +1241,9 @@ do
                        cd shallow &&
                        # Some protocol versions (e.g. 2) support fetching
                        # unadvertised objects, so restrict this test to v0.
-                       test_must_fail env GIT_TEST_PROTOCOL_VERSION= \
+                       test_must_fail env GIT_TEST_PROTOCOL_VERSION=0 \
                                git fetch ../testrepo/.git $SHA1_3 &&
-                       test_must_fail env GIT_TEST_PROTOCOL_VERSION= \
+                       test_must_fail env GIT_TEST_PROTOCOL_VERSION=0 \
                                git fetch ../testrepo/.git $SHA1_1 &&
                        git --git-dir=../testrepo/.git config uploadpack.allowreachablesha1inwant true &&
                        git fetch ../testrepo/.git $SHA1_1 &&
@@ -1251,7 +1251,7 @@ do
                        test_must_fail git cat-file commit $SHA1_2 &&
                        git fetch ../testrepo/.git $SHA1_2 &&
                        git cat-file commit $SHA1_2 &&
-                       test_must_fail env GIT_TEST_PROTOCOL_VERSION= \
+                       test_must_fail env GIT_TEST_PROTOCOL_VERSION=0 \
                                git fetch ../testrepo/.git $SHA1_3 2>err &&
                        test_i18ngrep "remote error:.*not our ref.*$SHA1_3\$" err
                )
@@ -1291,7 +1291,7 @@ test_expect_success 'peeled advertisements are not considered ref tips' '
        git -C testrepo commit --allow-empty -m two &&
        git -C testrepo tag -m foo mytag HEAD^ &&
        oid=$(git -C testrepo rev-parse mytag^{commit}) &&
-       test_must_fail env GIT_TEST_PROTOCOL_VERSION= \
+       test_must_fail env GIT_TEST_PROTOCOL_VERSION=0 \
                git fetch testrepo $oid 2>err &&
        test_i18ngrep "Server does not allow request for unadvertised object" err
 '
index b4ad81f00635efc144a3b531a939e5fc34d5c14f..c0d02dee893fc5466c36ce105b5a029ae66c7845 100755 (executable)
@@ -69,7 +69,7 @@ test_expect_success 'no shallow lines after receiving ACK ready' '
                test_commit new-too &&
                # NEEDSWORK: If the overspecification of the expected result is reduced, we
                # might be able to run this test in all protocol versions.
-               GIT_TRACE_PACKET="$TRASH_DIRECTORY/trace" GIT_TEST_PROTOCOL_VERSION= \
+               GIT_TRACE_PACKET="$TRASH_DIRECTORY/trace" GIT_TEST_PROTOCOL_VERSION=0 \
                        git fetch --depth=2 &&
                grep "fetch-pack< ACK .* ready" ../trace &&
                ! grep "fetch-pack> done" ../trace
index 4c970787b0ec1fcc3d18cdcab0f5c8fd15f16afd..23be8ce92d67824166156cf0c5ca380022b79efc 100755 (executable)
@@ -49,7 +49,7 @@ test_expect_success 'no empty path components' '
 
        # NEEDSWORK: If the overspecification of the expected result is reduced, we
        # might be able to run this test in all protocol versions.
-       if test -z "$GIT_TEST_PROTOCOL_VERSION"
+       if test "$GIT_TEST_PROTOCOL_VERSION" = 0
        then
                check_access_log exp
        fi
@@ -135,7 +135,7 @@ EOF
 test_expect_success 'used receive-pack service' '
        # NEEDSWORK: If the overspecification of the expected result is reduced, we
        # might be able to run this test in all protocol versions.
-       if test -z "$GIT_TEST_PROTOCOL_VERSION"
+       if test "$GIT_TEST_PROTOCOL_VERSION" = 0
        then
                check_access_log exp
        fi
index e38e54386795a0e05003e803dc79301ed1cd52d9..6788aefaceb8b01d9f9914a3a096b2a6bddec1df 100755 (executable)
@@ -43,7 +43,7 @@ test_expect_success 'clone http repository' '
        < Cache-Control: no-cache, max-age=0, must-revalidate
        < Content-Type: application/x-git-upload-pack-result
        EOF
-       GIT_TRACE_CURL=true GIT_TEST_PROTOCOL_VERSION= \
+       GIT_TRACE_CURL=true GIT_TEST_PROTOCOL_VERSION=0 \
                git clone --quiet $HTTPD_URL/smart/repo.git clone 2>err &&
        test_cmp file clone/file &&
        tr '\''\015'\'' Q <err |
@@ -84,7 +84,7 @@ test_expect_success 'clone http repository' '
 
        # NEEDSWORK: If the overspecification of the expected result is reduced, we
        # might be able to run this test in all protocol versions.
-       if test -z "$GIT_TEST_PROTOCOL_VERSION"
+       if test "$GIT_TEST_PROTOCOL_VERSION" = 0
        then
                sed -e "s/^> Accept-Encoding: .*/> Accept-Encoding: ENCODINGS/" \
                                actual >actual.smudged &&
@@ -113,7 +113,7 @@ test_expect_success 'used upload-pack service' '
 
        # NEEDSWORK: If the overspecification of the expected result is reduced, we
        # might be able to run this test in all protocol versions.
-       if test -z "$GIT_TEST_PROTOCOL_VERSION"
+       if test "$GIT_TEST_PROTOCOL_VERSION" = 0
        then
                check_access_log exp
        fi
@@ -241,7 +241,7 @@ test_expect_success 'cookies stored in http.cookiefile when http.savecookies set
 
        # NEEDSWORK: If the overspecification of the expected result is reduced, we
        # might be able to run this test in all protocol versions.
-       if test -z "$GIT_TEST_PROTOCOL_VERSION"
+       if test "$GIT_TEST_PROTOCOL_VERSION" = 0
        then
                tail -3 cookies.txt | sort >cookies_tail.txt &&
                test_cmp expect_cookies.txt cookies_tail.txt
@@ -336,7 +336,7 @@ test_expect_success 'test allowreachablesha1inwant with unreachable' '
        git -C test_reachable.git remote add origin "$HTTPD_URL/smart/repo.git" &&
        # Some protocol versions (e.g. 2) support fetching
        # unadvertised objects, so restrict this test to v0.
-       test_must_fail env GIT_TEST_PROTOCOL_VERSION= \
+       test_must_fail env GIT_TEST_PROTOCOL_VERSION=0 \
                git -C test_reachable.git fetch origin "$(git rev-parse HEAD)"
 '
 
@@ -358,7 +358,7 @@ test_expect_success 'test allowanysha1inwant with unreachable' '
        git -C test_reachable.git remote add origin "$HTTPD_URL/smart/repo.git" &&
        # Some protocol versions (e.g. 2) support fetching
        # unadvertised objects, so restrict this test to v0.
-       test_must_fail env GIT_TEST_PROTOCOL_VERSION= \
+       test_must_fail env GIT_TEST_PROTOCOL_VERSION=0 \
                git -C test_reachable.git fetch origin "$(git rev-parse HEAD)" &&
 
        git -C "$server" config uploadpack.allowanysha1inwant 1 &&
index 8f25f4b31fdcde9ee0b7321a87d7936181404cc2..156c70404083fb789127a0a5540bb6ba5332a3fb 100755 (executable)
@@ -108,7 +108,7 @@ test_expect_success 'use ref advertisement to filter out commits' '
        # The ref advertisement itself is filtered when protocol v2 is used, so
        # use v0.
        (
-               GIT_TEST_PROTOCOL_VERSION= &&
+               GIT_TEST_PROTOCOL_VERSION=0 &&
                export GIT_TEST_PROTOCOL_VERSION &&
                trace_fetch client origin to_fetch
        ) &&
index 2571eb90b7656cf2237a90806b79f14ab204d90c..022901b9eb6fdcaf3ff625b0db8056047946aa1a 100755 (executable)
@@ -5,7 +5,8 @@ test_description='test git wire-protocol transition'
 TEST_NO_CREATE_REPO=1
 
 # This is a protocol-specific test.
-GIT_TEST_PROTOCOL_VERSION=
+GIT_TEST_PROTOCOL_VERSION=0
+export GIT_TEST_PROTOCOL_VERSION
 
 . ./test-lib.sh
 
index 7478f7ab7eb8648a761111a9990d256fea15df58..4fb447a143e653b780d2e7eef94a7de30d75f7e8 100755 (executable)
@@ -960,7 +960,7 @@ test_expect_success 'submodule update clone shallow submodule outside of depth'
                mv -f .gitmodules.tmp .gitmodules &&
                # Some protocol versions (e.g. 2) support fetching
                # unadvertised objects, so restrict this test to v0.
-               test_must_fail env GIT_TEST_PROTOCOL_VERSION= \
+               test_must_fail env GIT_TEST_PROTOCOL_VERSION=0 \
                        git submodule update --init --depth=1 2>actual &&
                test_i18ngrep "Direct fetching of that commit failed." actual &&
                git -C ../submodule config uploadpack.allowReachableSHA1InWant true &&