diff options
author | Patrick Steinhardt <psteinhardt@gitlab.com> | 2021-04-15 15:03:24 +0300 |
---|---|---|
committer | Patrick Steinhardt <psteinhardt@gitlab.com> | 2021-04-19 08:50:38 +0300 |
commit | 32c2eeb679160ba24e1aa6fa38fa6418a9ae2ff2 (patch) | |
tree | 63a817089088d88e72cc46ae1802c3c474dcfac0 | |
parent | bf27075ea5ea1b26eef72fb931b21a00950cb7ec (diff) |
proxy: Use `t.Run()` to execute testcases
While the error propagation tests already set up table-driven tests with
a nice description for each of the table entries, it's not using
`t.Run()` to execute them.
Refactor the testcase to use `t.Run()`.
-rw-r--r-- | internal/praefect/grpc-proxy/proxy/handler_test.go | 96 |
1 files changed, 49 insertions, 47 deletions
diff --git a/internal/praefect/grpc-proxy/proxy/handler_test.go b/internal/praefect/grpc-proxy/proxy/handler_test.go index 874a96b0c..585dd647b 100644 --- a/internal/praefect/grpc-proxy/proxy/handler_test.go +++ b/internal/praefect/grpc-proxy/proxy/handler_test.go @@ -388,53 +388,55 @@ func TestProxyErrorPropagation(t *testing.T) { }, }, } { - tmpDir, clean := testhelper.TempDir(t) - defer clean() - - backendListener, err := net.Listen("unix", filepath.Join(tmpDir, "backend")) - require.NoError(t, err) - - backendServer := grpc.NewServer(grpc.UnknownServiceHandler(func(interface{}, grpc.ServerStream) error { - return tc.backendError - })) - go func() { backendServer.Serve(backendListener) }() - defer backendServer.Stop() - - ctx, cancel := testhelper.Context() - defer cancel() - - backendClientConn, err := grpc.DialContext(ctx, "unix://"+backendListener.Addr().String(), - grpc.WithInsecure(), grpc.WithDefaultCallOptions(grpc.ForceCodec(proxy.NewCodec()))) - require.NoError(t, err) - - proxyListener, err := net.Listen("unix", filepath.Join(tmpDir, "proxy")) - require.NoError(t, err) - - proxyServer := grpc.NewServer( - grpc.CustomCodec(proxy.NewCodec()), - grpc.UnknownServiceHandler(proxy.TransparentHandler(func(ctx context.Context, fullMethodName string, peeker proxy.StreamPeeker) (*proxy.StreamParameters, error) { - return proxy.NewStreamParameters( - proxy.Destination{ - Ctx: ctx, - Conn: backendClientConn, - ErrHandler: tc.errHandler, - }, - nil, - func() error { return tc.requestFinalizerError }, - nil, - ), tc.directorError - })), - ) - - go func() { proxyServer.Serve(proxyListener) }() - defer proxyServer.Stop() - - proxyClientConn, err := grpc.DialContext(ctx, "unix://"+proxyListener.Addr().String(), grpc.WithInsecure()) - require.NoError(t, err) - - resp, err := pb.NewTestServiceClient(proxyClientConn).Ping(ctx, &pb.PingRequest{}) - require.Equal(t, tc.returnedError, err) - require.Nil(t, resp) + t.Run(tc.desc, func(t *testing.T) { + tmpDir, clean := testhelper.TempDir(t) + defer clean() + + backendListener, err := net.Listen("unix", filepath.Join(tmpDir, "backend")) + require.NoError(t, err) + + backendServer := grpc.NewServer(grpc.UnknownServiceHandler(func(interface{}, grpc.ServerStream) error { + return tc.backendError + })) + go func() { backendServer.Serve(backendListener) }() + defer backendServer.Stop() + + ctx, cancel := testhelper.Context() + defer cancel() + + backendClientConn, err := grpc.DialContext(ctx, "unix://"+backendListener.Addr().String(), + grpc.WithInsecure(), grpc.WithDefaultCallOptions(grpc.ForceCodec(proxy.NewCodec()))) + require.NoError(t, err) + + proxyListener, err := net.Listen("unix", filepath.Join(tmpDir, "proxy")) + require.NoError(t, err) + + proxyServer := grpc.NewServer( + grpc.CustomCodec(proxy.NewCodec()), + grpc.UnknownServiceHandler(proxy.TransparentHandler(func(ctx context.Context, fullMethodName string, peeker proxy.StreamPeeker) (*proxy.StreamParameters, error) { + return proxy.NewStreamParameters( + proxy.Destination{ + Ctx: ctx, + Conn: backendClientConn, + ErrHandler: tc.errHandler, + }, + nil, + func() error { return tc.requestFinalizerError }, + nil, + ), tc.directorError + })), + ) + + go func() { proxyServer.Serve(proxyListener) }() + defer proxyServer.Stop() + + proxyClientConn, err := grpc.DialContext(ctx, "unix://"+proxyListener.Addr().String(), grpc.WithInsecure()) + require.NoError(t, err) + + resp, err := pb.NewTestServiceClient(proxyClientConn).Ping(ctx, &pb.PingRequest{}) + require.Equal(t, tc.returnedError, err) + require.Nil(t, resp) + }) } } |