From 8ba0e6f8389b44e9d5aa24c0c7abad64c8e3e1ce Mon Sep 17 00:00:00 2001 From: Ed Snible Date: Wed, 5 May 2021 13:10:28 -0400 Subject: [PATCH 1/3] Verify FindTraces() received a query Signed-off-by: Ed Snible --- cmd/query/app/grpc_handler.go | 3 +++ cmd/query/app/grpc_handler_test.go | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/cmd/query/app/grpc_handler.go b/cmd/query/app/grpc_handler.go index 6954de45520..598df0a4bcc 100644 --- a/cmd/query/app/grpc_handler.go +++ b/cmd/query/app/grpc_handler.go @@ -84,6 +84,9 @@ func (g *GRPCHandler) ArchiveTrace(ctx context.Context, r *api_v2.ArchiveTraceRe // FindTraces is the gRPC handler to fetch traces based on TraceQueryParameters. func (g *GRPCHandler) FindTraces(r *api_v2.FindTracesRequest, stream api_v2.QueryService_FindTracesServer) error { query := r.GetQuery() + if query == nil { + return status.Errorf(codes.InvalidArgument, "missing query") + } queryParams := spanstore.TraceQueryParameters{ ServiceName: query.ServiceName, OperationName: query.OperationName, diff --git a/cmd/query/app/grpc_handler_test.go b/cmd/query/app/grpc_handler_test.go index 99a81f7264d..464377963f6 100644 --- a/cmd/query/app/grpc_handler_test.go +++ b/cmd/query/app/grpc_handler_test.go @@ -364,6 +364,24 @@ func TestSearchSuccess_SpanStreamingGRPC(t *testing.T) { } func TestSearchFailure_GRPC(t *testing.T) { + withServerAndClient(t, func(server *grpcServer, client *grpcClient) { + mockErrorGRPC := fmt.Errorf("whatsamattayou") + + server.spanReader.On("FindTraces", mock.AnythingOfType("*context.valueCtx"), mock.AnythingOfType("*spanstore.TraceQueryParameters")). + Return(nil, mockErrorGRPC).Once() + + res, err := client.FindTraces(context.Background(), &api_v2.FindTracesRequest{ + Query: nil, + }) + assert.NoError(t, err) + + spanResChunk, err := res.Recv() + assert.Error(t, err) + assert.Nil(t, spanResChunk) + }) +} + +func TestSearchInvalid_GRPC(t *testing.T) { withServerAndClient(t, func(server *grpcServer, client *grpcClient) { mockErrorGRPC := fmt.Errorf("whatsamattayou") From a578c33eeda6381eedc10fbec8ae898f7169af28 Mon Sep 17 00:00:00 2001 From: Ed Snible Date: Wed, 5 May 2021 13:29:30 -0400 Subject: [PATCH 2/3] Simplify test Signed-off-by: Ed Snible --- cmd/query/app/grpc_handler_test.go | 5 ----- 1 file changed, 5 deletions(-) diff --git a/cmd/query/app/grpc_handler_test.go b/cmd/query/app/grpc_handler_test.go index 464377963f6..1c33b56c5ec 100644 --- a/cmd/query/app/grpc_handler_test.go +++ b/cmd/query/app/grpc_handler_test.go @@ -365,11 +365,6 @@ func TestSearchSuccess_SpanStreamingGRPC(t *testing.T) { func TestSearchFailure_GRPC(t *testing.T) { withServerAndClient(t, func(server *grpcServer, client *grpcClient) { - mockErrorGRPC := fmt.Errorf("whatsamattayou") - - server.spanReader.On("FindTraces", mock.AnythingOfType("*context.valueCtx"), mock.AnythingOfType("*spanstore.TraceQueryParameters")). - Return(nil, mockErrorGRPC).Once() - res, err := client.FindTraces(context.Background(), &api_v2.FindTracesRequest{ Query: nil, }) From ef6938f7e94b91ba5d7c584e4106465cf340662c Mon Sep 17 00:00:00 2001 From: Ed Snible Date: Wed, 5 May 2021 13:31:27 -0400 Subject: [PATCH 3/3] Rename test Signed-off-by: Ed Snible --- cmd/query/app/grpc_handler_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/query/app/grpc_handler_test.go b/cmd/query/app/grpc_handler_test.go index 1c33b56c5ec..98d922e6c11 100644 --- a/cmd/query/app/grpc_handler_test.go +++ b/cmd/query/app/grpc_handler_test.go @@ -363,7 +363,7 @@ func TestSearchSuccess_SpanStreamingGRPC(t *testing.T) { }) } -func TestSearchFailure_GRPC(t *testing.T) { +func TestSearchInvalid_GRPC(t *testing.T) { withServerAndClient(t, func(server *grpcServer, client *grpcClient) { res, err := client.FindTraces(context.Background(), &api_v2.FindTracesRequest{ Query: nil, @@ -376,7 +376,7 @@ func TestSearchFailure_GRPC(t *testing.T) { }) } -func TestSearchInvalid_GRPC(t *testing.T) { +func TestSearchFailure_GRPC(t *testing.T) { withServerAndClient(t, func(server *grpcServer, client *grpcClient) { mockErrorGRPC := fmt.Errorf("whatsamattayou")