]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t5730: introduce fetch command helper
authorKim Altintop <kim@eagain.st>
Fri, 13 Aug 2021 06:23:40 +0000 (06:23 +0000)
committerJunio C Hamano <gitster@pobox.com>
Wed, 1 Sep 2021 14:54:00 +0000 (07:54 -0700)
Assembling a "raw" fetch command to be fed directly to "test-tool serve-v2"
is extracted into a test helper.

Suggested-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Kim Altintop <kim@eagain.st>
Reviewed-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t5703-upload-pack-ref-in-want.sh

index e9e471621d59a6a321699c1c59138b95c05b2525..3dad21ff45f9172e19e8f4a1a82db93f8a1fc775 100755 (executable)
@@ -40,6 +40,30 @@ write_command () {
        fi
 }
 
+# Write a complete fetch command to stdout, suitable for use with `test-tool
+# pkt-line`. "want-ref", "want", and "have" lines are read from stdin.
+#
+# Examples:
+#
+# write_fetch_command <<-EOF
+# want-ref refs/heads/main
+# have $(git rev-parse a)
+# EOF
+#
+# write_fetch_command <<-EOF
+# want $(git rev-parse b)
+# have $(git rev-parse a)
+# EOF
+#
+write_fetch_command () {
+       write_command fetch &&
+       echo "0001" &&
+       echo "no-progress" &&
+       cat &&
+       echo "done" &&
+       echo "0000"
+}
+
 # c(o/foo) d(o/bar)
 #        \ /
 #         b   e(baz)  f(main)
@@ -77,15 +101,11 @@ test_expect_success 'config controls ref-in-want advertisement' '
 '
 
 test_expect_success 'invalid want-ref line' '
-       test-tool pkt-line pack >in <<-EOF &&
-       $(write_command fetch)
-       0001
-       no-progress
+       write_fetch_command >pkt <<-EOF &&
        want-ref refs/heads/non-existent
-       done
-       0000
        EOF
 
+       test-tool pkt-line pack <pkt >in &&
        test_must_fail test-tool serve-v2 --stateless-rpc 2>out <in &&
        grep "unknown ref" out
 '
@@ -97,16 +117,11 @@ test_expect_success 'basic want-ref' '
        EOF
        git rev-parse f >expected_commits &&
 
-       oid=$(git rev-parse a) &&
-       test-tool pkt-line pack >in <<-EOF &&
-       $(write_command fetch)
-       0001
-       no-progress
+       write_fetch_command >pkt <<-EOF &&
        want-ref refs/heads/main
-       have $oid
-       done
-       0000
+       have $(git rev-parse a)
        EOF
+       test-tool pkt-line pack <pkt >in &&
 
        test-tool serve-v2 --stateless-rpc >out <in &&
        check_output
@@ -121,17 +136,12 @@ test_expect_success 'multiple want-ref lines' '
        EOF
        git rev-parse c d >expected_commits &&
 
-       oid=$(git rev-parse b) &&
-       test-tool pkt-line pack >in <<-EOF &&
-       $(write_command fetch)
-       0001
-       no-progress
+       write_fetch_command >pkt <<-EOF &&
        want-ref refs/heads/o/foo
        want-ref refs/heads/o/bar
-       have $oid
-       done
-       0000
+       have $(git rev-parse b)
        EOF
+       test-tool pkt-line pack <pkt >in &&
 
        test-tool serve-v2 --stateless-rpc >out <in &&
        check_output
@@ -144,16 +154,12 @@ test_expect_success 'mix want and want-ref' '
        EOF
        git rev-parse e f >expected_commits &&
 
-       test-tool pkt-line pack >in <<-EOF &&
-       $(write_command fetch)
-       0001
-       no-progress
+       write_fetch_command >pkt <<-EOF &&
        want-ref refs/heads/main
        want $(git rev-parse e)
        have $(git rev-parse a)
-       done
-       0000
        EOF
+       test-tool pkt-line pack <pkt >in &&
 
        test-tool serve-v2 --stateless-rpc >out <in &&
        check_output
@@ -166,16 +172,11 @@ test_expect_success 'want-ref with ref we already have commit for' '
        EOF
        >expected_commits &&
 
-       oid=$(git rev-parse c) &&
-       test-tool pkt-line pack >in <<-EOF &&
-       $(write_command fetch)
-       0001
-       no-progress
+       write_fetch_command >pkt <<-EOF &&
        want-ref refs/heads/o/foo
-       have $oid
-       done
-       0000
+       have $(git rev-parse c)
        EOF
+       test-tool pkt-line pack <pkt >in &&
 
        test-tool serve-v2 --stateless-rpc >out <in &&
        check_output