Skip to content

Commit

Permalink
t5730: introduce fetch command helper
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
kim authored and gitster committed Sep 1, 2021
1 parent 2d755df commit bac01c6
Showing 1 changed file with 37 additions and 36 deletions.
73 changes: 37 additions & 36 deletions t/t5703-upload-pack-ref-in-want.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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
'
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Down

0 comments on commit bac01c6

Please sign in to comment.