You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.5 KiB
52 lines
1.5 KiB
#!/bin/sh |
|
|
|
test_description='Test responses to violations of the network protocol. In most |
|
of these cases it will generally be acceptable for one side to break off |
|
communications if the other side says something unexpected. We are mostly |
|
making sure that we do not segfault or otherwise behave badly.' |
|
|
|
TEST_PASSES_SANITIZE_LEAK=true |
|
. ./test-lib.sh |
|
|
|
test_expect_success 'extra delim packet in v2 ls-refs args' ' |
|
{ |
|
packetize command=ls-refs && |
|
packetize "object-format=$(test_oid algo)" && |
|
printf 0001 && |
|
# protocol expects 0000 flush here |
|
printf 0001 |
|
} >input && |
|
test_must_fail env GIT_PROTOCOL=version=2 \ |
|
git upload-pack . <input 2>err && |
|
test_i18ngrep "expected flush after ls-refs arguments" err |
|
' |
|
|
|
test_expect_success 'extra delim packet in v2 fetch args' ' |
|
{ |
|
packetize command=fetch && |
|
packetize "object-format=$(test_oid algo)" && |
|
printf 0001 && |
|
# protocol expects 0000 flush here |
|
printf 0001 |
|
} >input && |
|
test_must_fail env GIT_PROTOCOL=version=2 \ |
|
git upload-pack . <input 2>err && |
|
test_i18ngrep "expected flush after fetch arguments" err |
|
' |
|
|
|
test_expect_success 'bogus symref in v0 capabilities' ' |
|
test_commit foo && |
|
oid=$(git rev-parse HEAD) && |
|
dst=refs/heads/foo && |
|
{ |
|
printf "%s HEAD\0symref object-format=%s symref=HEAD:%s\n" \ |
|
"$oid" "$GIT_DEFAULT_HASH" "$dst" | |
|
test-tool pkt-line pack-raw-stdin && |
|
printf "0000" |
|
} >input && |
|
git ls-remote --symref --upload-pack="cat input; read junk;:" . >actual && |
|
printf "ref: %s\tHEAD\n%s\tHEAD\n" "$dst" "$oid" >expect && |
|
test_cmp expect actual |
|
' |
|
|
|
test_done
|
|
|