diff options
author | Patrick Steinhardt <psteinhardt@gitlab.com> | 2022-07-20 09:40:31 +0300 |
---|---|---|
committer | Patrick Steinhardt <psteinhardt@gitlab.com> | 2022-07-22 14:38:39 +0300 |
commit | dc2794ab86c15aec27c584745f4ce3b41da30393 (patch) | |
tree | 6dc7f47f71660325d1e311c49fbe1e5808e3ea63 | |
parent | 539b09030b8b764a77786c025652b8ebf660c296 (diff) |
ssh: Add tests to verify reference negotiation with invalid objects
Add two more tests that verify reference negotiation with invalid and
missing objects fails as expected.
-rw-r--r-- | internal/gitaly/service/ssh/upload_pack_test.go | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/internal/gitaly/service/ssh/upload_pack_test.go b/internal/gitaly/service/ssh/upload_pack_test.go index 3739d2617..e053ad83c 100644 --- a/internal/gitaly/service/ssh/upload_pack_test.go +++ b/internal/gitaly/service/ssh/upload_pack_test.go @@ -247,6 +247,42 @@ func TestUploadPackWithSidechannel_client(t *testing.T) { ), }, { + desc: "request missing object", + request: &gitalypb.SSHUploadPackWithSidechannelRequest{ + Repository: repo, + }, + client: func(clientConn *sidechannel.ClientConn, _ func()) error { + gittest.WritePktlineString(t, clientConn, "want "+strings.Repeat("1", 40)+" multi_ack\n") + gittest.WritePktlineFlush(t, clientConn) + gittest.WritePktlineString(t, clientConn, "done\n") + + require.NoError(t, clientConn.CloseWrite()) + + return nil + }, + expectedErr: helper.ErrInternalf("cmd wait: exit status 128, stderr: %q", + "fatal: git upload-pack: not our ref "+strings.Repeat("1", 40)+"\n", + ), + }, + { + desc: "request invalidly formatted object", + request: &gitalypb.SSHUploadPackWithSidechannelRequest{ + Repository: repo, + }, + client: func(clientConn *sidechannel.ClientConn, _ func()) error { + gittest.WritePktlineString(t, clientConn, "want 1111 multi_ack\n") + gittest.WritePktlineFlush(t, clientConn) + gittest.WritePktlineString(t, clientConn, "done\n") + + require.NoError(t, clientConn.CloseWrite()) + + return nil + }, + expectedErr: helper.ErrInternalf("cmd wait: exit status 128, stderr: %q", + "fatal: git upload-pack: protocol error, expected to get object ID, not 'want 1111 multi_ack'\n", + ), + }, + { desc: "missing input", request: &gitalypb.SSHUploadPackWithSidechannelRequest{ Repository: repo, |