Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Steinhardt <psteinhardt@gitlab.com>2022-07-20 09:40:31 +0300
committerPatrick Steinhardt <psteinhardt@gitlab.com>2022-07-22 14:38:39 +0300
commitdc2794ab86c15aec27c584745f4ce3b41da30393 (patch)
tree6dc7f47f71660325d1e311c49fbe1e5808e3ea63
parent539b09030b8b764a77786c025652b8ebf660c296 (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.go36
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,