diff options
Diffstat (limited to 'client/testserver/gitalyserver.go')
-rw-r--r-- | client/testserver/gitalyserver.go | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/client/testserver/gitalyserver.go b/client/testserver/gitalyserver.go index 46a37b2..79768a6 100644 --- a/client/testserver/gitalyserver.go +++ b/client/testserver/gitalyserver.go @@ -1,6 +1,8 @@ package testserver import ( + "context" + "fmt" "net" "os" "path" @@ -8,8 +10,11 @@ import ( "testing" "github.com/stretchr/testify/require" + "gitlab.com/gitlab-org/gitaly/v14/client" pb "gitlab.com/gitlab-org/gitaly/v14/proto/go/gitalypb" + "gitlab.com/gitlab-org/labkit/log" "google.golang.org/grpc" + "google.golang.org/grpc/credentials/insecure" "google.golang.org/grpc/metadata" ) @@ -46,6 +51,26 @@ func (s *TestGitalyServer) SSHUploadPack(stream pb.SSHService_SSHUploadPackServe return nil } +func (s *TestGitalyServer) SSHUploadPackWithSidechannel(ctx context.Context, req *pb.SSHUploadPackWithSidechannelRequest) (*pb.SSHUploadPackWithSidechannelResponse, error) { + conn, err := client.OpenServerSidechannel(ctx) + if err != nil { + return nil, err + } + defer conn.Close() + + s.ReceivedMD, _ = metadata.FromIncomingContext(ctx) + + response := []byte("SSHUploadPackWithSidechannel: " + req.Repository.GlRepository) + if _, err := fmt.Fprintf(conn, "%04x\x01%s", len(response)+5, response); err != nil { + return nil, err + } + if err := conn.Close(); err != nil { + return nil, err + } + + return &pb.SSHUploadPackWithSidechannelResponse{}, nil +} + func (s *TestGitalyServer) SSHUploadArchive(stream pb.SSHService_SSHUploadArchiveServer) error { req, err := stream.Recv() if err != nil { @@ -70,7 +95,9 @@ func StartGitalyServer(t *testing.T) (string, *TestGitalyServer) { err := os.MkdirAll(filepath.Dir(gitalySocketPath), 0700) require.NoError(t, err) - server := grpc.NewServer() + server := grpc.NewServer( + client.SidechannelServer(log.ContextLogger(context.Background()), insecure.NewCredentials()), + ) listener, err := net.Listen("unix", gitalySocketPath) require.NoError(t, err) |