1
0
mirror of https://github.com/open-telemetry/opentelemetry-go.git synced 2025-08-10 22:31:50 +02:00

chore: flatten bridge/opentracing/internal package (#6916)

This commit moves `bridge/opentracing/internal/mock.go` to
`bridge/opentracing/mock_test.go`, makes all exported types private and
removes unnecessary `bridge/open/internal` package.

Closes https://github.com/open-telemetry/opentelemetry-go/issues/6563

---------

Co-authored-by: Damien Mathieu <42@dmathieu.com>
This commit is contained in:
Bəxtiyar
2025-06-23 10:25:31 +03:00
committed by GitHub
parent 1b803e1a59
commit 98f76937b8
11 changed files with 117 additions and 189 deletions

View File

@@ -1,7 +1,7 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
package test
package opentracing
import (
"context"
@@ -17,8 +17,6 @@ import (
"google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"
ototel "go.opentelemetry.io/otel/bridge/opentracing"
"go.opentelemetry.io/otel/bridge/opentracing/internal"
"go.opentelemetry.io/otel/propagation"
)
@@ -56,9 +54,8 @@ func startTestGRPCServer(t *testing.T, tracer ot.Tracer) (*grpc.Server, net.Addr
}
func TestBridgeTracer_ExtractAndInject_gRPC(t *testing.T) {
tracer := internal.NewMockTracer()
bridge := ototel.NewBridgeTracer()
tracer := newMockTracer()
bridge := NewBridgeTracer()
bridge.SetOpenTelemetryTracer(tracer)
bridge.SetTextMapPropagator(propagation.TraceContext{})

View File

@@ -20,7 +20,6 @@ import (
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/bridge/opentracing/internal"
"go.opentelemetry.io/otel/propagation"
"go.opentelemetry.io/otel/trace"
)
@@ -467,7 +466,7 @@ func Test_otTagToOTelAttr(t *testing.T) {
}
func TestBridgeSpan_SetTag(t *testing.T) {
tracer := internal.NewMockTracer()
tracer := newMockTracer()
b, _ := NewTracerPair(tracer)
testCases := []struct {
@@ -513,7 +512,7 @@ func TestBridgeSpan_SetTag(t *testing.T) {
span := b.StartSpan("test")
span.SetTag(tc.tagKey, tc.tagValue)
mockSpan := span.(*bridgeSpan).otelSpan.(*internal.MockSpan)
mockSpan := span.(*bridgeSpan).otelSpan.(*mockSpan)
if tc.expected != nil {
assert.Contains(t, mockSpan.Attributes, tc.expected)
} else {
@@ -524,7 +523,7 @@ func TestBridgeSpan_SetTag(t *testing.T) {
}
func Test_otTagsToOTelAttributesKindAndError(t *testing.T) {
tracer := internal.NewMockTracer()
tracer := newMockTracer()
sc := &bridgeSpanContext{}
testCases := []struct {
@@ -559,7 +558,7 @@ func Test_otTagsToOTelAttributesKindAndError(t *testing.T) {
b, _ := NewTracerPair(tracer)
s := b.StartSpan(tc.name, tc.opt...)
assert.Equal(t, tc.expected, s.(*bridgeSpan).otelSpan.(*internal.MockSpan).SpanKind)
assert.Equal(t, tc.expected, s.(*bridgeSpan).otelSpan.(*mockSpan).SpanKind)
})
}
}
@@ -584,7 +583,7 @@ func TestBridge_SpanContext_IsSampled(t *testing.T) {
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
tracer := internal.NewMockTracer()
tracer := newMockTracer()
tracer.TraceFlags = tc.flags
b, _ := NewTracerPair(tracer)
@@ -688,7 +687,7 @@ func TestBridgeCarrierBaggagePropagation(t *testing.T) {
for _, c := range carriers {
for _, tc := range testCases {
t.Run(fmt.Sprintf("%s %s", c.name, tc.name), func(t *testing.T) {
mockOtelTracer := internal.NewMockTracer()
mockOtelTracer := newMockTracer()
b, _ := NewTracerPair(mockOtelTracer)
b.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator(
propagation.TraceContext{},
@@ -881,12 +880,12 @@ func TestBridgeSpan_LogFields(t *testing.T) {
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
tracer := internal.NewMockTracer()
tracer := newMockTracer()
b, _ := NewTracerPair(tracer)
span := b.StartSpan("test")
span.LogFields(tc.field)
mockSpan := span.(*bridgeSpan).otelSpan.(*internal.MockSpan)
mockSpan := span.(*bridgeSpan).otelSpan.(*mockSpan)
event := mockSpan.Events[0]
assert.Contains(t, event.Attributes, tc.expected)
})
@@ -983,11 +982,11 @@ func TestBridgeSpan_LogKV(t *testing.T) {
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
tracer := internal.NewMockTracer()
tracer := newMockTracer()
b, _ := NewTracerPair(tracer)
span := b.StartSpan("test")
span.LogKV(tc.kv[0], tc.kv[1])
mockSpan := span.(*bridgeSpan).otelSpan.(*internal.MockSpan)
mockSpan := span.(*bridgeSpan).otelSpan.(*mockSpan)
event := mockSpan.Events[0]
assert.Contains(t, event.Attributes, tc.expected)
})

View File

@@ -7,19 +7,28 @@ replace go.opentelemetry.io/otel => ../..
replace go.opentelemetry.io/otel/trace => ../../trace
require (
github.com/opentracing-contrib/go-grpc v0.1.1
github.com/opentracing-contrib/go-grpc/test v0.0.0-20250122020132-2f9c7e3db032
github.com/opentracing/opentracing-go v1.2.0
github.com/stretchr/testify v1.10.0
go.opentelemetry.io/otel v1.36.0
go.opentelemetry.io/otel/trace v1.36.0
google.golang.org/grpc v1.73.0
)
require (
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/go-logr/logr v1.4.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/golang/protobuf v1.5.4 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
go.opentelemetry.io/otel/metric v1.36.0 // indirect
golang.org/x/net v0.38.0 // indirect
golang.org/x/sys v0.31.0 // indirect
golang.org/x/text v0.23.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463 // indirect
google.golang.org/protobuf v1.36.6 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)

View File

@@ -6,12 +6,20 @@ github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/opentracing-contrib/go-grpc v0.1.1 h1:Ws7IN1zyiL1DFqKQPhRXuKe5pLYzMfdxnC1qtajE2PE=
github.com/opentracing-contrib/go-grpc v0.1.1/go.mod h1:Nu6sz+4zzgxXu8rvKfnwjBEmHsuhTigxRwV2RhELrS8=
github.com/opentracing-contrib/go-grpc/test v0.0.0-20250122020132-2f9c7e3db032 h1:HGsK6KQUCjUB/wh0h7kxtNWu8AMmiGTFMiv9s9JrDSs=
github.com/opentracing-contrib/go-grpc/test v0.0.0-20250122020132-2f9c7e3db032/go.mod h1:lGUfQ7UdqHsl7maAepZ2isMI1odCvxR62U2m/Jfi0oQ=
github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
@@ -24,6 +32,22 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY=
go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg=
go.opentelemetry.io/otel/sdk/metric v1.35.0 h1:1RriWBmCKgkeHEhM7a2uMjMUfP7MsOF5JpUCaEqEI9o=
go.opentelemetry.io/otel/sdk/metric v1.35.0/go.mod h1:is6XYCUMpcKi+ZsOvfluY5YstFnhW0BidkR+gL+qN+w=
golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8=
golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY=
golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463 h1:e0AIkUUhxyBKh6ssZNrAMeqhA7RKUj42346d1y02i2g=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250324211829-b45e905df463/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
google.golang.org/grpc v1.73.0 h1:VIWSmpI2MegBtTuFt5/JWy2oXxtjJ/e89Z70ImfD2ok=
google.golang.org/grpc v1.73.0/go.mod h1:50sbHOUqWoCQGI8V2HQLJM0B+LMlIUjNSZmow7EVBQc=
google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=

View File

@@ -1,5 +0,0 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
// Package internal provides internal functionality for the opentracing package.
package internal // import "go.opentelemetry.io/otel/bridge/opentracing/internal"

View File

@@ -13,16 +13,15 @@ import (
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/baggage"
"go.opentelemetry.io/otel/bridge/opentracing/internal"
"go.opentelemetry.io/otel/trace"
)
type mixedAPIsTestCase struct {
desc string
setup func(*testing.T, *internal.MockTracer)
setup func(*testing.T, *mockTracer)
run func(*testing.T, context.Context)
check func(*testing.T, *internal.MockTracer)
check func(*testing.T, *mockTracer)
}
func getMixedAPIsTestCases() []mixedAPIsTestCase {
@@ -99,7 +98,7 @@ func getMixedAPIsTestCases() []mixedAPIsTestCase {
func TestMixedAPIs(t *testing.T) {
for idx, tc := range getMixedAPIsTestCases() {
t.Logf("Running test case %d: %s", idx, tc.desc)
mockOtelTracer := internal.NewMockTracer()
mockOtelTracer := newMockTracer()
ctx, otTracer, otelProvider := NewTracerPairWithContext(context.Background(), mockOtelTracer)
otTracer.SetWarningHandler(func(msg string) {
t.Log(msg)
@@ -128,12 +127,12 @@ func newSimpleTest() *simpleTest {
}
}
func (st *simpleTest) setup(t *testing.T, tracer *internal.MockTracer) {
func (st *simpleTest) setup(t *testing.T, tracer *mockTracer) {
tracer.SpareTraceIDs = append(tracer.SpareTraceIDs, st.traceID)
tracer.SpareSpanIDs = append(tracer.SpareSpanIDs, st.spanIDs...)
}
func (st *simpleTest) check(t *testing.T, tracer *internal.MockTracer) {
func (st *simpleTest) check(t *testing.T, tracer *mockTracer) {
checkTraceAndSpans(t, tracer, st.traceID, st.spanIDs)
}
@@ -166,7 +165,7 @@ func newCurrentActiveSpanTest() *currentActiveSpanTest {
}
}
func (cast *currentActiveSpanTest) setup(t *testing.T, tracer *internal.MockTracer) {
func (cast *currentActiveSpanTest) setup(t *testing.T, tracer *mockTracer) {
tracer.SpareTraceIDs = append(tracer.SpareTraceIDs, cast.traceID)
tracer.SpareSpanIDs = append(tracer.SpareSpanIDs, cast.spanIDs...)
@@ -174,7 +173,7 @@ func (cast *currentActiveSpanTest) setup(t *testing.T, tracer *internal.MockTrac
cast.recordedActiveOTSpanIDs = nil
}
func (cast *currentActiveSpanTest) check(t *testing.T, tracer *internal.MockTracer) {
func (cast *currentActiveSpanTest) check(t *testing.T, tracer *mockTracer) {
checkTraceAndSpans(t, tracer, cast.traceID, cast.spanIDs)
if len(cast.recordedCurrentOtelSpanIDs) != len(cast.spanIDs) {
t.Errorf(
@@ -236,7 +235,7 @@ func (cast *currentActiveSpanTest) recordSpans(t *testing.T, ctx context.Context
// context intact test
type contextIntactTest struct {
contextKeyValues []internal.MockContextKeyValue
contextKeyValues []mockContextKeyValue
recordedContextValues []interface{}
recordIdx int
@@ -256,7 +255,7 @@ type coin3Value struct{}
func newContextIntactTest() *contextIntactTest {
return &contextIntactTest{
contextKeyValues: []internal.MockContextKeyValue{
contextKeyValues: []mockContextKeyValue{
{
Key: coin1Key{},
Value: coin1Value{},
@@ -273,14 +272,14 @@ func newContextIntactTest() *contextIntactTest {
}
}
func (coin *contextIntactTest) setup(t *testing.T, tracer *internal.MockTracer) {
func (coin *contextIntactTest) setup(t *testing.T, tracer *mockTracer) {
tracer.SpareContextKeyValues = append(tracer.SpareContextKeyValues, coin.contextKeyValues...)
coin.recordedContextValues = nil
coin.recordIdx = 0
}
func (coin *contextIntactTest) check(t *testing.T, tracer *internal.MockTracer) {
func (coin *contextIntactTest) check(t *testing.T, tracer *mockTracer) {
if len(coin.recordedContextValues) != len(coin.contextKeyValues) {
t.Errorf(
"Expected to have %d recorded context values, got %d",
@@ -352,12 +351,12 @@ func newBaggageItemsPreservationTest() *baggageItemsPreservationTest {
}
}
func (bip *baggageItemsPreservationTest) setup(t *testing.T, tracer *internal.MockTracer) {
func (bip *baggageItemsPreservationTest) setup(t *testing.T, tracer *mockTracer) {
bip.step = 0
bip.recordedBaggage = nil
}
func (bip *baggageItemsPreservationTest) check(t *testing.T, tracer *internal.MockTracer) {
func (bip *baggageItemsPreservationTest) check(t *testing.T, tracer *mockTracer) {
if len(bip.recordedBaggage) != len(bip.baggageItems) {
t.Errorf("Expected %d recordings, got %d", len(bip.baggageItems), len(bip.recordedBaggage))
}
@@ -450,13 +449,13 @@ func newBaggageInteroperationTest() *baggageInteroperationTest {
}
}
func (bio *baggageInteroperationTest) setup(t *testing.T, tracer *internal.MockTracer) {
func (bio *baggageInteroperationTest) setup(t *testing.T, tracer *mockTracer) {
bio.step = 0
bio.recordedOTBaggage = nil
bio.recordedOtelBaggage = nil
}
func (bio *baggageInteroperationTest) check(t *testing.T, tracer *internal.MockTracer) {
func (bio *baggageInteroperationTest) check(t *testing.T, tracer *mockTracer) {
checkBIORecording(t, "OT", bio.baggageItems, bio.recordedOTBaggage)
checkBIORecording(t, "Otel", bio.baggageItems, bio.recordedOtelBaggage)
}
@@ -579,7 +578,7 @@ func generateBaggageKeys(key string) (otKey, otelKey string) {
func checkTraceAndSpans(
t *testing.T,
tracer *internal.MockTracer,
tracer *mockTracer,
expectedTraceID trace.TraceID,
expectedSpanIDs []trace.SpanID,
) {

View File

@@ -1,7 +1,7 @@
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
package internal // import "go.opentelemetry.io/otel/bridge/opentracing/internal"
package opentracing // import "go.opentelemetry.io/otel/bridge/opentracing"
import (
"context"
@@ -21,26 +21,24 @@ import (
//nolint:revive // ignoring missing comments for unexported global variables in an internal package.
var (
ComponentKey = attribute.Key("component")
ServiceKey = attribute.Key("service")
StatusCodeKey = attribute.Key("status.code")
StatusMessageKey = attribute.Key("status.message")
ErrorKey = attribute.Key("error")
NameKey = attribute.Key("name")
statusCodeKey = attribute.Key("status.code")
statusMessageKey = attribute.Key("status.message")
errorKey = attribute.Key("error")
nameKey = attribute.Key("name")
)
type MockContextKeyValue struct {
type mockContextKeyValue struct {
Key interface{}
Value interface{}
}
type MockTracer struct {
type mockTracer struct {
embedded.Tracer
FinishedSpans []*MockSpan
FinishedSpans []*mockSpan
SpareTraceIDs []trace.TraceID
SpareSpanIDs []trace.SpanID
SpareContextKeyValues []MockContextKeyValue
SpareContextKeyValues []mockContextKeyValue
TraceFlags trace.TraceFlags
randLock sync.Mutex
@@ -48,14 +46,14 @@ type MockTracer struct {
}
var (
_ trace.Tracer = &MockTracer{}
_ migration.DeferredContextSetupTracerExtension = &MockTracer{}
_ trace.Tracer = &mockTracer{}
_ migration.DeferredContextSetupTracerExtension = &mockTracer{}
)
func NewMockTracer() *MockTracer {
func newMockTracer() *mockTracer {
u := rand.Uint32()
seed := [32]byte{byte(u), byte(u >> 8), byte(u >> 16), byte(u >> 24)}
return &MockTracer{
return &mockTracer{
FinishedSpans: nil,
SpareTraceIDs: nil,
SpareSpanIDs: nil,
@@ -65,7 +63,8 @@ func NewMockTracer() *MockTracer {
}
}
func (t *MockTracer) Start(
// Start returns a new trace span with the given name and options.
func (t *mockTracer) Start(
ctx context.Context,
name string,
opts ...trace.SpanStartOption,
@@ -80,7 +79,7 @@ func (t *MockTracer) Start(
SpanID: t.getSpanID(),
TraceFlags: t.TraceFlags,
})
span := &MockSpan{
span := &mockSpan{
mockTracer: t,
officialTracer: t,
spanContext: spanContext,
@@ -98,10 +97,10 @@ func (t *MockTracer) Start(
return ctx, span
}
func (t *MockTracer) addSpareContextValue(ctx context.Context) context.Context {
func (t *mockTracer) addSpareContextValue(ctx context.Context) context.Context {
if len(t.SpareContextKeyValues) > 0 {
pair := t.SpareContextKeyValues[0]
t.SpareContextKeyValues[0] = MockContextKeyValue{}
t.SpareContextKeyValues[0] = mockContextKeyValue{}
t.SpareContextKeyValues = t.SpareContextKeyValues[1:]
if len(t.SpareContextKeyValues) == 0 {
t.SpareContextKeyValues = nil
@@ -111,7 +110,7 @@ func (t *MockTracer) addSpareContextValue(ctx context.Context) context.Context {
return ctx
}
func (t *MockTracer) getTraceID(ctx context.Context, config *trace.SpanConfig) trace.TraceID {
func (t *mockTracer) getTraceID(ctx context.Context, config *trace.SpanConfig) trace.TraceID {
if parent := t.getParentSpanContext(ctx, config); parent.IsValid() {
return parent.TraceID()
}
@@ -126,21 +125,21 @@ func (t *MockTracer) getTraceID(ctx context.Context, config *trace.SpanConfig) t
return t.getRandTraceID()
}
func (t *MockTracer) getParentSpanID(ctx context.Context, config *trace.SpanConfig) trace.SpanID {
func (t *mockTracer) getParentSpanID(ctx context.Context, config *trace.SpanConfig) trace.SpanID {
if parent := t.getParentSpanContext(ctx, config); parent.IsValid() {
return parent.SpanID()
}
return trace.SpanID{}
}
func (t *MockTracer) getParentSpanContext(ctx context.Context, config *trace.SpanConfig) trace.SpanContext {
func (t *mockTracer) getParentSpanContext(ctx context.Context, config *trace.SpanConfig) trace.SpanContext {
if !config.NewRoot() {
return trace.SpanContextFromContext(ctx)
}
return trace.SpanContext{}
}
func (t *MockTracer) getSpanID() trace.SpanID {
func (t *mockTracer) getSpanID() trace.SpanID {
if len(t.SpareSpanIDs) > 0 {
spanID := t.SpareSpanIDs[0]
t.SpareSpanIDs = t.SpareSpanIDs[1:]
@@ -152,7 +151,7 @@ func (t *MockTracer) getSpanID() trace.SpanID {
return t.getRandSpanID()
}
func (t *MockTracer) getRandSpanID() trace.SpanID {
func (t *mockTracer) getRandSpanID() trace.SpanID {
t.randLock.Lock()
defer t.randLock.Unlock()
@@ -162,7 +161,7 @@ func (t *MockTracer) getRandSpanID() trace.SpanID {
return sid
}
func (t *MockTracer) getRandTraceID() trace.TraceID {
func (t *mockTracer) getRandTraceID() trace.TraceID {
t.randLock.Lock()
defer t.randLock.Unlock()
@@ -172,25 +171,26 @@ func (t *MockTracer) getRandTraceID() trace.TraceID {
return tid
}
func (t *MockTracer) DeferredContextSetupHook(ctx context.Context, span trace.Span) context.Context {
// DeferredContextSetupHook implements the DeferredContextSetupTracerExtension interface.
func (t *mockTracer) DeferredContextSetupHook(ctx context.Context, span trace.Span) context.Context {
return t.addSpareContextValue(ctx)
}
type MockEvent struct {
type mockEvent struct {
Timestamp time.Time
Name string
Attributes []attribute.KeyValue
}
type MockLink struct {
type mockLink struct {
SpanContext trace.SpanContext
Attributes []attribute.KeyValue
}
type MockSpan struct {
type mockSpan struct {
embedded.Span
mockTracer *MockTracer
mockTracer *mockTracer
officialTracer trace.Tracer
spanContext trace.SpanContext
SpanKind trace.SpanKind
@@ -200,40 +200,40 @@ type MockSpan struct {
StartTime time.Time
EndTime time.Time
ParentSpanID trace.SpanID
Events []MockEvent
Links []MockLink
Events []mockEvent
Links []mockLink
}
var (
_ trace.Span = &MockSpan{}
_ migration.OverrideTracerSpanExtension = &MockSpan{}
_ trace.Span = &mockSpan{}
_ migration.OverrideTracerSpanExtension = &mockSpan{}
)
func (s *MockSpan) SpanContext() trace.SpanContext {
func (s *mockSpan) SpanContext() trace.SpanContext {
return s.spanContext
}
func (s *MockSpan) IsRecording() bool {
func (s *mockSpan) IsRecording() bool {
return s.recording
}
func (s *MockSpan) SetStatus(code codes.Code, msg string) {
s.SetAttributes(StatusCodeKey.Int(int(code)), StatusMessageKey.String(msg))
func (s *mockSpan) SetStatus(code codes.Code, msg string) {
s.SetAttributes(statusCodeKey.Int(int(code)), statusMessageKey.String(msg))
}
func (s *MockSpan) SetName(name string) {
s.SetAttributes(NameKey.String(name))
func (s *mockSpan) SetName(name string) {
s.SetAttributes(nameKey.String(name))
}
func (s *MockSpan) SetError(v bool) {
s.SetAttributes(ErrorKey.Bool(v))
func (s *mockSpan) SetError(v bool) {
s.SetAttributes(errorKey.Bool(v))
}
func (s *MockSpan) SetAttributes(attributes ...attribute.KeyValue) {
func (s *mockSpan) SetAttributes(attributes ...attribute.KeyValue) {
s.applyUpdate(attributes)
}
func (s *MockSpan) applyUpdate(update []attribute.KeyValue) {
func (s *mockSpan) applyUpdate(update []attribute.KeyValue) {
updateM := make(map[attribute.Key]attribute.Value, len(update))
for _, kv := range update {
updateM[kv.Key] = kv.Value
@@ -255,7 +255,7 @@ func (s *MockSpan) applyUpdate(update []attribute.KeyValue) {
}
}
func (s *MockSpan) End(options ...trace.SpanEndOption) {
func (s *mockSpan) End(options ...trace.SpanEndOption) {
if !s.EndTime.IsZero() {
return // already finished
}
@@ -268,7 +268,7 @@ func (s *MockSpan) End(options ...trace.SpanEndOption) {
s.mockTracer.FinishedSpans = append(s.mockTracer.FinishedSpans, s)
}
func (s *MockSpan) RecordError(err error, opts ...trace.EventOption) {
func (s *mockSpan) RecordError(err error, opts ...trace.EventOption) {
if err == nil {
return // no-op on nil error
}
@@ -285,28 +285,28 @@ func (s *MockSpan) RecordError(err error, opts ...trace.EventOption) {
s.AddEvent(semconv.ExceptionEventName, opts...)
}
func (s *MockSpan) Tracer() trace.Tracer {
func (s *mockSpan) Tracer() trace.Tracer {
return s.officialTracer
}
func (s *MockSpan) AddEvent(name string, o ...trace.EventOption) {
func (s *mockSpan) AddEvent(name string, o ...trace.EventOption) {
c := trace.NewEventConfig(o...)
s.Events = append(s.Events, MockEvent{
s.Events = append(s.Events, mockEvent{
Timestamp: c.Timestamp(),
Name: name,
Attributes: c.Attributes(),
})
}
func (s *MockSpan) AddLink(link trace.Link) {
s.Links = append(s.Links, MockLink{
func (s *mockSpan) AddLink(link trace.Link) {
s.Links = append(s.Links, mockLink{
SpanContext: link.SpanContext,
Attributes: link.Attributes,
})
}
func (s *MockSpan) OverrideTracer(tracer trace.Tracer) {
func (s *mockSpan) OverrideTracer(tracer trace.Tracer) {
s.officialTracer = tracer
}
func (s *MockSpan) TracerProvider() trace.TracerProvider { return noop.NewTracerProvider() }
func (s *mockSpan) TracerProvider() trace.TracerProvider { return noop.NewTracerProvider() }

View File

@@ -7,14 +7,13 @@ import (
"testing"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/bridge/opentracing/internal"
"go.opentelemetry.io/otel/trace"
"go.opentelemetry.io/otel/trace/embedded"
)
type namedMockTracer struct {
name string
*internal.MockTracer
*mockTracer
}
type namedMockTracerProvider struct{ embedded.TracerProvider }
@@ -25,7 +24,7 @@ var _ trace.TracerProvider = (*namedMockTracerProvider)(nil)
func (p *namedMockTracerProvider) Tracer(name string, opts ...trace.TracerOption) trace.Tracer {
return &namedMockTracer{
name: name,
MockTracer: internal.NewMockTracer(),
mockTracer: newMockTracer(),
}
}

View File

@@ -1,38 +0,0 @@
module go.opentelemetry.io/otel/bridge/opentracing/test
go 1.23.0
replace go.opentelemetry.io/otel => ../../..
replace go.opentelemetry.io/otel/bridge/opentracing => ../
replace go.opentelemetry.io/otel/trace => ../../../trace
require (
github.com/opentracing-contrib/go-grpc v0.1.1
github.com/opentracing-contrib/go-grpc/test v0.0.0-20250122020132-2f9c7e3db032
github.com/opentracing/opentracing-go v1.2.0
github.com/stretchr/testify v1.10.0
go.opentelemetry.io/otel v1.36.0
go.opentelemetry.io/otel/bridge/opentracing v1.36.0
google.golang.org/grpc v1.73.0
)
require (
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/go-logr/logr v1.4.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/golang/protobuf v1.5.4 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
go.opentelemetry.io/otel/metric v1.36.0 // indirect
go.opentelemetry.io/otel/trace v1.36.0 // indirect
golang.org/x/net v0.41.0 // indirect
golang.org/x/sys v0.33.0 // indirect
golang.org/x/text v0.26.0 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 // indirect
google.golang.org/protobuf v1.36.6 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
replace go.opentelemetry.io/otel/metric => ../../../metric

View File

@@ -1,55 +0,0 @@
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/opentracing-contrib/go-grpc v0.1.1 h1:Ws7IN1zyiL1DFqKQPhRXuKe5pLYzMfdxnC1qtajE2PE=
github.com/opentracing-contrib/go-grpc v0.1.1/go.mod h1:Nu6sz+4zzgxXu8rvKfnwjBEmHsuhTigxRwV2RhELrS8=
github.com/opentracing-contrib/go-grpc/test v0.0.0-20250122020132-2f9c7e3db032 h1:HGsK6KQUCjUB/wh0h7kxtNWu8AMmiGTFMiv9s9JrDSs=
github.com/opentracing-contrib/go-grpc/test v0.0.0-20250122020132-2f9c7e3db032/go.mod h1:lGUfQ7UdqHsl7maAepZ2isMI1odCvxR62U2m/Jfi0oQ=
github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
go.opentelemetry.io/otel/sdk v1.35.0 h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY=
go.opentelemetry.io/otel/sdk v1.35.0/go.mod h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg=
go.opentelemetry.io/otel/sdk/metric v1.35.0 h1:1RriWBmCKgkeHEhM7a2uMjMUfP7MsOF5JpUCaEqEI9o=
go.opentelemetry.io/otel/sdk/metric v1.35.0/go.mod h1:is6XYCUMpcKi+ZsOvfluY5YstFnhW0BidkR+gL+qN+w=
golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw=
golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA=
golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M=
golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 h1:fc6jSaCT0vBduLYZHYrBBNY4dsWuvgyff9noRNDdBeE=
google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A=
google.golang.org/grpc v1.73.0 h1:VIWSmpI2MegBtTuFt5/JWy2oXxtjJ/e89Z70ImfD2ok=
google.golang.org/grpc v1.73.0/go.mod h1:50sbHOUqWoCQGI8V2HQLJM0B+LMlIUjNSZmow7EVBQc=
google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

View File

@@ -9,7 +9,6 @@ module-sets:
- go.opentelemetry.io/otel/bridge/opencensus
- go.opentelemetry.io/otel/bridge/opencensus/test
- go.opentelemetry.io/otel/bridge/opentracing
- go.opentelemetry.io/otel/bridge/opentracing/test
- go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc
- go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp
- go.opentelemetry.io/otel/exporters/otlp/otlptrace