When we speak protocol v2 in this test, we must pass the object-format header if the algorithm is not SHA-1. Otherwise, git upload-pack fails because the hash algorithm doesn't match and not because we've failed to speak the protocol correctly. Pass the header so that our assertions test what we're really interested in. Signed-off-by: brian m. carlson <sandals@xxxxxxxxxxxxxxxxxxxx> --- t/t5704-protocol-violations.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/t/t5704-protocol-violations.sh b/t/t5704-protocol-violations.sh index 950cfb21fe..47e78932b9 100755 --- a/t/t5704-protocol-violations.sh +++ b/t/t5704-protocol-violations.sh @@ -6,9 +6,20 @@ communications if the other side says something unexpected. We are mostly making sure that we do not segfault or otherwise behave badly.' . ./test-lib.sh +# If we don't print the object format, we'll fail for a spurious reason: the +# mismatched object format. +print_object_format () { + local algo=$(test_oid algo) && + if test "$algo" != "sha1" + then + packetize "object-format=$algo" + fi +} + test_expect_success 'extra delim packet in v2 ls-refs args' ' { packetize command=ls-refs && + print_object_format && printf 0001 && # protocol expects 0000 flush here printf 0001 @@ -21,6 +32,7 @@ test_expect_success 'extra delim packet in v2 ls-refs args' ' test_expect_success 'extra delim packet in v2 fetch args' ' { packetize command=fetch && + print_object_format && printf 0001 && # protocol expects 0000 flush here printf 0001