diff options
author | Patrick Steinhardt <psteinhardt@gitlab.com> | 2023-07-05 17:46:50 +0300 |
---|---|---|
committer | Patrick Steinhardt <psteinhardt@gitlab.com> | 2023-07-05 17:47:40 +0300 |
commit | a898d65ad7b47fbd439ad7ed66fd0910d128323a (patch) | |
tree | d696770f1f40501af40982ec074ac5b3a9021ffe | |
parent | 384242ff20a665cc944b9f98febd63cc9dafc0e3 (diff) |
smarthttp: Close test connection via `t.Cleanup()`
Refactor the `newSmartHTTPClient()` helper function to automatically
clean up the connection via `t.Cleanup()`. Adjust callers accordingly.
-rw-r--r-- | internal/gitaly/service/smarthttp/inforefs_test.go | 9 | ||||
-rw-r--r-- | internal/gitaly/service/smarthttp/receive_pack_test.go | 33 | ||||
-rw-r--r-- | internal/gitaly/service/smarthttp/testhelper_test.go | 13 |
3 files changed, 22 insertions, 33 deletions
diff --git a/internal/gitaly/service/smarthttp/inforefs_test.go b/internal/gitaly/service/smarthttp/inforefs_test.go index 0496bc0bc..18caca364 100644 --- a/internal/gitaly/service/smarthttp/inforefs_test.go +++ b/internal/gitaly/service/smarthttp/inforefs_test.go @@ -219,8 +219,7 @@ func TestInfoRefsUploadPack_gitProtocol(t *testing.T) { repo, _ := gittest.CreateRepository(t, ctx, cfg) - client, conn := newSmartHTTPClient(t, server.Address(), cfg.Auth.Token) - defer testhelper.MustClose(t, conn) + client := newSmartHTTPClient(t, server.Address(), cfg.Auth.Token) c, err := client.InfoRefsUploadPack(ctx, &gitalypb.InfoRefsRequest{ Repository: repo, @@ -242,8 +241,7 @@ func TestInfoRefsUploadPack_gitProtocol(t *testing.T) { func makeInfoRefsUploadPackRequest(t *testing.T, ctx context.Context, serverSocketPath, token string, rpcRequest *gitalypb.InfoRefsRequest) ([]byte, error) { t.Helper() - client, conn := newSmartHTTPClient(t, serverSocketPath, token) - defer conn.Close() + client := newSmartHTTPClient(t, serverSocketPath, token) ctx, cancel := context.WithCancel(ctx) defer cancel() @@ -343,8 +341,7 @@ func TestInfoRefsReceivePack_validate(t *testing.T) { func makeInfoRefsReceivePackRequest(t *testing.T, ctx context.Context, serverSocketPath, token string, rpcRequest *gitalypb.InfoRefsRequest) ([]byte, error) { t.Helper() - client, conn := newSmartHTTPClient(t, serverSocketPath, token) - defer conn.Close() + client := newSmartHTTPClient(t, serverSocketPath, token) ctx, cancel := context.WithCancel(ctx) defer cancel() diff --git a/internal/gitaly/service/smarthttp/receive_pack_test.go b/internal/gitaly/service/smarthttp/receive_pack_test.go index 78e7b7b40..80c42b555 100644 --- a/internal/gitaly/service/smarthttp/receive_pack_test.go +++ b/internal/gitaly/service/smarthttp/receive_pack_test.go @@ -58,8 +58,7 @@ func TestPostReceivePack_successful(t *testing.T) { }) repo.GlProjectPath = "project/path" - client, conn := newSmartHTTPClient(t, server.Address(), cfg.Auth.Token) - defer conn.Close() + client := newSmartHTTPClient(t, server.Address(), cfg.Auth.Token) // Below, we test whether extracting the hooks payload leads to the expected // results. Part of this payload are feature flags, so we need to get them into a @@ -153,8 +152,7 @@ func TestPostReceivePack_hiddenRefs(t *testing.T) { newHead, err := repo.ResolveRevision(ctx, "HEAD") require.NoError(t, err) - client, conn := newSmartHTTPClient(t, cfg.SocketPath, cfg.Auth.Token) - defer conn.Close() + client := newSmartHTTPClient(t, cfg.SocketPath, cfg.Auth.Token) for _, ref := range []string{ "refs/environments/1", @@ -207,8 +205,7 @@ func TestPostReceivePack_protocolV2(t *testing.T) { Seed: gittest.SeedGitLabTest, }) - client, conn := newSmartHTTPClient(t, server.Address(), cfg.Auth.Token) - defer conn.Close() + client := newSmartHTTPClient(t, server.Address(), cfg.Auth.Token) stream, err := client.PostReceivePack(ctx) require.NoError(t, err) @@ -237,8 +234,7 @@ func TestPostReceivePack_packfiles(t *testing.T) { cfg.SocketPath = startSmartHTTPServer(t, cfg).Address() testcfg.BuildGitalyHooks(t, cfg) - client, conn := newSmartHTTPClient(t, cfg.SocketPath, cfg.Auth.Token) - defer conn.Close() + client := newSmartHTTPClient(t, cfg.SocketPath, cfg.Auth.Token) repo, repoPath := gittest.CreateRepository(t, ctx, cfg, gittest.CreateRepositoryConfig{ Seed: gittest.SeedGitLabTest, @@ -297,8 +293,7 @@ func TestPostReceivePack_rejectViaGitConfigOptions(t *testing.T) { Seed: gittest.SeedGitLabTest, }) - client, conn := newSmartHTTPClient(t, cfg.SocketPath, cfg.Auth.Token) - defer conn.Close() + client := newSmartHTTPClient(t, cfg.SocketPath, cfg.Auth.Token) stream, err := client.PostReceivePack(ctx) require.NoError(t, err) @@ -336,8 +331,7 @@ func TestPostReceivePack_rejectViaHooks(t *testing.T) { Seed: gittest.SeedGitLabTest, }) - client, conn := newSmartHTTPClient(t, server.Address(), cfg.Auth.Token) - defer conn.Close() + client := newSmartHTTPClient(t, server.Address(), cfg.Auth.Token) stream, err := client.PostReceivePack(ctx) require.NoError(t, err) @@ -361,8 +355,7 @@ func TestPostReceivePack_requestValidation(t *testing.T) { cfg := testcfg.Build(t) cfg.SocketPath = runSmartHTTPServer(t, cfg) - client, conn := newSmartHTTPClient(t, cfg.SocketPath, cfg.Auth.Token) - defer conn.Close() + client := newSmartHTTPClient(t, cfg.SocketPath, cfg.Auth.Token) repoProto, _ := gittest.CreateRepository(t, ctx, cfg) @@ -442,8 +435,7 @@ func TestPostReceivePack_invalidObjects(t *testing.T) { Seed: gittest.SeedGitLabTest, }) - client, conn := newSmartHTTPClient(t, server.Address(), cfg.Auth.Token) - defer conn.Close() + client := newSmartHTTPClient(t, server.Address(), cfg.Auth.Token) head := text.ChompBytes(gittest.Exec(t, cfg, "-C", localRepoPath, "rev-parse", "HEAD")) tree := text.ChompBytes(gittest.Exec(t, cfg, "-C", localRepoPath, "rev-parse", "HEAD^{tree}")) @@ -583,8 +575,7 @@ func TestPostReceivePack_fsck(t *testing.T) { "-C", repoPath, "pack-objects", "--stdout", "--revs", "--thin", "--delta-base-offset", "-q", ) - client, conn := newSmartHTTPClient(t, cfg.SocketPath, cfg.Auth.Token) - defer conn.Close() + client := newSmartHTTPClient(t, cfg.SocketPath, cfg.Auth.Token) stream, err := client.PostReceivePack(ctx) require.NoError(t, err) @@ -643,8 +634,7 @@ func TestPostReceivePack_hooks(t *testing.T) { gittest.WriteCheckNewObjectExistsHook(t, repoPath) - client, conn := newSmartHTTPClient(t, cfg.SocketPath, cfg.Auth.Token) - defer conn.Close() + client := newSmartHTTPClient(t, cfg.SocketPath, cfg.Auth.Token) stream, err := client.PostReceivePack(ctx) require.NoError(t, err) @@ -695,8 +685,7 @@ func TestPostReceivePack_transactionsViaPraefect(t *testing.T) { gitlab.WriteShellSecretFile(t, cfg.GitlabShell.Dir, opts.SecretToken) - client, conn := newSmartHTTPClient(t, cfg.SocketPath, cfg.Auth.Token) - defer conn.Close() + client := newSmartHTTPClient(t, cfg.SocketPath, cfg.Auth.Token) stream, err := client.PostReceivePack(ctx) require.NoError(t, err) diff --git a/internal/gitaly/service/smarthttp/testhelper_test.go b/internal/gitaly/service/smarthttp/testhelper_test.go index c3f5fc751..93b6a9894 100644 --- a/internal/gitaly/service/smarthttp/testhelper_test.go +++ b/internal/gitaly/service/smarthttp/testhelper_test.go @@ -75,17 +75,20 @@ func runSmartHTTPServer(t *testing.T, cfg config.Cfg, opts ...ServerOpt) string return gitalyServer.Address() } -func newSmartHTTPClient(t *testing.T, serverSocketPath, token string) (gitalypb.SmartHTTPServiceClient, *grpc.ClientConn) { +func newSmartHTTPClient(t *testing.T, serverSocketPath, token string) gitalypb.SmartHTTPServiceClient { t.Helper() - connOpts := []grpc.DialOption{ + conn, err := grpc.Dial(serverSocketPath, grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithPerRPCCredentials(gitalyauth.RPCCredentialsV2(token)), - } - conn, err := grpc.Dial(serverSocketPath, connOpts...) + ) require.NoError(t, err) - return gitalypb.NewSmartHTTPServiceClient(conn), conn + t.Cleanup(func() { + testhelper.MustClose(t, conn) + }) + + return gitalypb.NewSmartHTTPServiceClient(conn) } func newMuxedSmartHTTPClient(t *testing.T, ctx context.Context, serverSocketPath, token string, serverFactory backchannel.ServerFactory) gitalypb.SmartHTTPServiceClient { |