summaryrefslogtreecommitdiff
path: root/client/testserver/gitalyserver.go
diff options
context:
space:
mode:
Diffstat (limited to 'client/testserver/gitalyserver.go')
-rw-r--r--client/testserver/gitalyserver.go29
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)