Skip to content

Commit 65fdbf4

Browse files
committed
solve conflict
1 parent 5693ab6 commit 65fdbf4

File tree

1 file changed

+12
-79
lines changed

1 file changed

+12
-79
lines changed

bridge/opentracing/bridge_grpc_test.go renamed to bridge/opentracing/mock_test.go

Lines changed: 12 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,25 @@
11
// Copyright The OpenTelemetry Authors
22
// SPDX-License-Identifier: Apache-2.0
33

4-
package opentracing
4+
package opentracing // import "go.opentelemetry.io/otel/bridge/opentracing"
55

66
import (
77
"context"
88
"math/rand"
9-
"net"
109
"reflect"
1110
"sync"
12-
"testing"
1311
"time"
1412

15-
otgrpc "github.com/opentracing-contrib/go-grpc"
16-
testpb "github.com/opentracing-contrib/go-grpc/test/otgrpc_testing"
17-
ot "github.com/opentracing/opentracing-go"
18-
"github.com/stretchr/testify/assert"
19-
"github.com/stretchr/testify/require"
20-
"google.golang.org/grpc"
21-
"google.golang.org/grpc/credentials/insecure"
22-
2313
"go.opentelemetry.io/otel/attribute"
2414
"go.opentelemetry.io/otel/bridge/opentracing/migration"
2515
"go.opentelemetry.io/otel/codes"
26-
"go.opentelemetry.io/otel/propagation"
2716
semconv "go.opentelemetry.io/otel/semconv/v1.26.0"
2817
"go.opentelemetry.io/otel/trace"
2918
"go.opentelemetry.io/otel/trace/embedded"
3019
"go.opentelemetry.io/otel/trace/noop"
3120
)
3221

33-
type testGRPCServer struct{}
34-
22+
//nolint:revive // ignoring missing comments for unexported global variables in an internal package.
3523
var (
3624
statusCodeKey = attribute.Key("status.code")
3725
statusMessageKey = attribute.Key("status.message")
@@ -57,6 +45,11 @@ type mockTracer struct {
5745
rand *rand.Rand
5846
}
5947

48+
var (
49+
_ trace.Tracer = &mockTracer{}
50+
_ migration.DeferredContextSetupTracerExtension = &mockTracer{}
51+
)
52+
6053
func newMockTracer() *mockTracer {
6154
return &mockTracer{
6255
FinishedSpans: nil,
@@ -203,6 +196,11 @@ type mockSpan struct {
203196
Links []mockLink
204197
}
205198

199+
var (
200+
_ trace.Span = &mockSpan{}
201+
_ migration.OverrideTracerSpanExtension = &mockSpan{}
202+
)
203+
206204
func (s *mockSpan) SpanContext() trace.SpanContext {
207205
return s.spanContext
208206
}
@@ -304,68 +302,3 @@ func (s *mockSpan) OverrideTracer(tracer trace.Tracer) {
304302
}
305303

306304
func (s *mockSpan) TracerProvider() trace.TracerProvider { return noop.NewTracerProvider() }
307-
308-
func (*testGRPCServer) UnaryCall(ctx context.Context, r *testpb.SimpleRequest) (*testpb.SimpleResponse, error) {
309-
return &testpb.SimpleResponse{Payload: r.Payload * 2}, nil
310-
}
311-
312-
func (*testGRPCServer) StreamingOutputCall(*testpb.SimpleRequest, testpb.TestService_StreamingOutputCallServer) error {
313-
return nil
314-
}
315-
316-
func (*testGRPCServer) StreamingInputCall(testpb.TestService_StreamingInputCallServer) error {
317-
return nil
318-
}
319-
320-
func (*testGRPCServer) StreamingBidirectionalCall(testpb.TestService_StreamingBidirectionalCallServer) error {
321-
return nil
322-
}
323-
324-
func startTestGRPCServer(t *testing.T, tracer ot.Tracer) (*grpc.Server, net.Addr) {
325-
lis, _ := net.Listen("tcp", ":0")
326-
server := grpc.NewServer(
327-
grpc.UnaryInterceptor(otgrpc.OpenTracingServerInterceptor(tracer)),
328-
)
329-
testpb.RegisterTestServiceServer(server, &testGRPCServer{})
330-
331-
go func() {
332-
err := server.Serve(lis)
333-
require.NoError(t, err)
334-
}()
335-
336-
return server, lis.Addr()
337-
}
338-
339-
func TestBridgeTracer_ExtractAndInject_gRPC(t *testing.T) {
340-
tracer := newMockTracer()
341-
bridge := NewBridgeTracer()
342-
bridge.SetOpenTelemetryTracer(tracer)
343-
bridge.SetTextMapPropagator(propagation.TraceContext{})
344-
345-
srv, addr := startTestGRPCServer(t, bridge)
346-
defer srv.Stop()
347-
348-
conn, err := grpc.NewClient(
349-
addr.String(),
350-
grpc.WithTransportCredentials(insecure.NewCredentials()),
351-
grpc.WithUnaryInterceptor(otgrpc.OpenTracingClientInterceptor(bridge)),
352-
)
353-
require.NoError(t, err)
354-
cli := testpb.NewTestServiceClient(conn)
355-
356-
ctx, cx := context.WithTimeout(context.Background(), 10*time.Second)
357-
defer cx()
358-
res, err := cli.UnaryCall(ctx, &testpb.SimpleRequest{Payload: 42})
359-
require.NoError(t, err)
360-
assert.EqualValues(t, 84, res.Payload)
361-
362-
checkSpans := func() bool {
363-
return len(tracer.FinishedSpans) == 2
364-
}
365-
require.Eventuallyf(t, checkSpans, 5*time.Second, 5*time.Millisecond, "expecting two spans")
366-
assert.Equal(t,
367-
tracer.FinishedSpans[0].SpanContext().TraceID(),
368-
tracer.FinishedSpans[1].SpanContext().TraceID(),
369-
"expecting same trace ID",
370-
)
371-
}

0 commit comments

Comments
 (0)