You've already forked opentelemetry-go
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:
@@ -1,7 +1,7 @@
|
|||||||
// Copyright The OpenTelemetry Authors
|
// Copyright The OpenTelemetry Authors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
package test
|
package opentracing
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
@@ -17,8 +17,6 @@ import (
|
|||||||
"google.golang.org/grpc"
|
"google.golang.org/grpc"
|
||||||
"google.golang.org/grpc/credentials/insecure"
|
"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"
|
"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) {
|
func TestBridgeTracer_ExtractAndInject_gRPC(t *testing.T) {
|
||||||
tracer := internal.NewMockTracer()
|
tracer := newMockTracer()
|
||||||
|
bridge := NewBridgeTracer()
|
||||||
bridge := ototel.NewBridgeTracer()
|
|
||||||
bridge.SetOpenTelemetryTracer(tracer)
|
bridge.SetOpenTelemetryTracer(tracer)
|
||||||
bridge.SetTextMapPropagator(propagation.TraceContext{})
|
bridge.SetTextMapPropagator(propagation.TraceContext{})
|
||||||
|
|
@@ -20,7 +20,6 @@ import (
|
|||||||
|
|
||||||
"go.opentelemetry.io/otel"
|
"go.opentelemetry.io/otel"
|
||||||
"go.opentelemetry.io/otel/attribute"
|
"go.opentelemetry.io/otel/attribute"
|
||||||
"go.opentelemetry.io/otel/bridge/opentracing/internal"
|
|
||||||
"go.opentelemetry.io/otel/propagation"
|
"go.opentelemetry.io/otel/propagation"
|
||||||
"go.opentelemetry.io/otel/trace"
|
"go.opentelemetry.io/otel/trace"
|
||||||
)
|
)
|
||||||
@@ -467,7 +466,7 @@ func Test_otTagToOTelAttr(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestBridgeSpan_SetTag(t *testing.T) {
|
func TestBridgeSpan_SetTag(t *testing.T) {
|
||||||
tracer := internal.NewMockTracer()
|
tracer := newMockTracer()
|
||||||
b, _ := NewTracerPair(tracer)
|
b, _ := NewTracerPair(tracer)
|
||||||
|
|
||||||
testCases := []struct {
|
testCases := []struct {
|
||||||
@@ -513,7 +512,7 @@ func TestBridgeSpan_SetTag(t *testing.T) {
|
|||||||
span := b.StartSpan("test")
|
span := b.StartSpan("test")
|
||||||
|
|
||||||
span.SetTag(tc.tagKey, tc.tagValue)
|
span.SetTag(tc.tagKey, tc.tagValue)
|
||||||
mockSpan := span.(*bridgeSpan).otelSpan.(*internal.MockSpan)
|
mockSpan := span.(*bridgeSpan).otelSpan.(*mockSpan)
|
||||||
if tc.expected != nil {
|
if tc.expected != nil {
|
||||||
assert.Contains(t, mockSpan.Attributes, tc.expected)
|
assert.Contains(t, mockSpan.Attributes, tc.expected)
|
||||||
} else {
|
} else {
|
||||||
@@ -524,7 +523,7 @@ func TestBridgeSpan_SetTag(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func Test_otTagsToOTelAttributesKindAndError(t *testing.T) {
|
func Test_otTagsToOTelAttributesKindAndError(t *testing.T) {
|
||||||
tracer := internal.NewMockTracer()
|
tracer := newMockTracer()
|
||||||
sc := &bridgeSpanContext{}
|
sc := &bridgeSpanContext{}
|
||||||
|
|
||||||
testCases := []struct {
|
testCases := []struct {
|
||||||
@@ -559,7 +558,7 @@ func Test_otTagsToOTelAttributesKindAndError(t *testing.T) {
|
|||||||
b, _ := NewTracerPair(tracer)
|
b, _ := NewTracerPair(tracer)
|
||||||
|
|
||||||
s := b.StartSpan(tc.name, tc.opt...)
|
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 {
|
for _, tc := range testCases {
|
||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
tracer := internal.NewMockTracer()
|
tracer := newMockTracer()
|
||||||
tracer.TraceFlags = tc.flags
|
tracer.TraceFlags = tc.flags
|
||||||
|
|
||||||
b, _ := NewTracerPair(tracer)
|
b, _ := NewTracerPair(tracer)
|
||||||
@@ -688,7 +687,7 @@ func TestBridgeCarrierBaggagePropagation(t *testing.T) {
|
|||||||
for _, c := range carriers {
|
for _, c := range carriers {
|
||||||
for _, tc := range testCases {
|
for _, tc := range testCases {
|
||||||
t.Run(fmt.Sprintf("%s %s", c.name, tc.name), func(t *testing.T) {
|
t.Run(fmt.Sprintf("%s %s", c.name, tc.name), func(t *testing.T) {
|
||||||
mockOtelTracer := internal.NewMockTracer()
|
mockOtelTracer := newMockTracer()
|
||||||
b, _ := NewTracerPair(mockOtelTracer)
|
b, _ := NewTracerPair(mockOtelTracer)
|
||||||
b.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator(
|
b.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator(
|
||||||
propagation.TraceContext{},
|
propagation.TraceContext{},
|
||||||
@@ -881,12 +880,12 @@ func TestBridgeSpan_LogFields(t *testing.T) {
|
|||||||
|
|
||||||
for _, tc := range testCases {
|
for _, tc := range testCases {
|
||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
tracer := internal.NewMockTracer()
|
tracer := newMockTracer()
|
||||||
b, _ := NewTracerPair(tracer)
|
b, _ := NewTracerPair(tracer)
|
||||||
span := b.StartSpan("test")
|
span := b.StartSpan("test")
|
||||||
|
|
||||||
span.LogFields(tc.field)
|
span.LogFields(tc.field)
|
||||||
mockSpan := span.(*bridgeSpan).otelSpan.(*internal.MockSpan)
|
mockSpan := span.(*bridgeSpan).otelSpan.(*mockSpan)
|
||||||
event := mockSpan.Events[0]
|
event := mockSpan.Events[0]
|
||||||
assert.Contains(t, event.Attributes, tc.expected)
|
assert.Contains(t, event.Attributes, tc.expected)
|
||||||
})
|
})
|
||||||
@@ -983,11 +982,11 @@ func TestBridgeSpan_LogKV(t *testing.T) {
|
|||||||
|
|
||||||
for _, tc := range testCases {
|
for _, tc := range testCases {
|
||||||
t.Run(tc.name, func(t *testing.T) {
|
t.Run(tc.name, func(t *testing.T) {
|
||||||
tracer := internal.NewMockTracer()
|
tracer := newMockTracer()
|
||||||
b, _ := NewTracerPair(tracer)
|
b, _ := NewTracerPair(tracer)
|
||||||
span := b.StartSpan("test")
|
span := b.StartSpan("test")
|
||||||
span.LogKV(tc.kv[0], tc.kv[1])
|
span.LogKV(tc.kv[0], tc.kv[1])
|
||||||
mockSpan := span.(*bridgeSpan).otelSpan.(*internal.MockSpan)
|
mockSpan := span.(*bridgeSpan).otelSpan.(*mockSpan)
|
||||||
event := mockSpan.Events[0]
|
event := mockSpan.Events[0]
|
||||||
assert.Contains(t, event.Attributes, tc.expected)
|
assert.Contains(t, event.Attributes, tc.expected)
|
||||||
})
|
})
|
||||||
|
@@ -7,19 +7,28 @@ replace go.opentelemetry.io/otel => ../..
|
|||||||
replace go.opentelemetry.io/otel/trace => ../../trace
|
replace go.opentelemetry.io/otel/trace => ../../trace
|
||||||
|
|
||||||
require (
|
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/opentracing/opentracing-go v1.2.0
|
||||||
github.com/stretchr/testify v1.10.0
|
github.com/stretchr/testify v1.10.0
|
||||||
go.opentelemetry.io/otel v1.36.0
|
go.opentelemetry.io/otel v1.36.0
|
||||||
go.opentelemetry.io/otel/trace v1.36.0
|
go.opentelemetry.io/otel/trace v1.36.0
|
||||||
|
google.golang.org/grpc v1.73.0
|
||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||||
github.com/go-logr/logr v1.4.3 // indirect
|
github.com/go-logr/logr v1.4.3 // indirect
|
||||||
github.com/go-logr/stdr v1.2.2 // 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
|
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||||
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
|
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
|
||||||
go.opentelemetry.io/otel/metric v1.36.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
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@@ -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/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 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
|
||||||
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
|
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 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
|
||||||
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
|
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 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
|
||||||
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
|
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 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
|
||||||
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
|
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 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs=
|
||||||
github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc=
|
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 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=
|
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 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
|
||||||
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
|
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 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 h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||||
|
@@ -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"
|
|
@@ -13,16 +13,15 @@ import (
|
|||||||
"go.opentelemetry.io/otel"
|
"go.opentelemetry.io/otel"
|
||||||
"go.opentelemetry.io/otel/attribute"
|
"go.opentelemetry.io/otel/attribute"
|
||||||
"go.opentelemetry.io/otel/baggage"
|
"go.opentelemetry.io/otel/baggage"
|
||||||
"go.opentelemetry.io/otel/bridge/opentracing/internal"
|
|
||||||
"go.opentelemetry.io/otel/trace"
|
"go.opentelemetry.io/otel/trace"
|
||||||
)
|
)
|
||||||
|
|
||||||
type mixedAPIsTestCase struct {
|
type mixedAPIsTestCase struct {
|
||||||
desc string
|
desc string
|
||||||
|
|
||||||
setup func(*testing.T, *internal.MockTracer)
|
setup func(*testing.T, *mockTracer)
|
||||||
run func(*testing.T, context.Context)
|
run func(*testing.T, context.Context)
|
||||||
check func(*testing.T, *internal.MockTracer)
|
check func(*testing.T, *mockTracer)
|
||||||
}
|
}
|
||||||
|
|
||||||
func getMixedAPIsTestCases() []mixedAPIsTestCase {
|
func getMixedAPIsTestCases() []mixedAPIsTestCase {
|
||||||
@@ -99,7 +98,7 @@ func getMixedAPIsTestCases() []mixedAPIsTestCase {
|
|||||||
func TestMixedAPIs(t *testing.T) {
|
func TestMixedAPIs(t *testing.T) {
|
||||||
for idx, tc := range getMixedAPIsTestCases() {
|
for idx, tc := range getMixedAPIsTestCases() {
|
||||||
t.Logf("Running test case %d: %s", idx, tc.desc)
|
t.Logf("Running test case %d: %s", idx, tc.desc)
|
||||||
mockOtelTracer := internal.NewMockTracer()
|
mockOtelTracer := newMockTracer()
|
||||||
ctx, otTracer, otelProvider := NewTracerPairWithContext(context.Background(), mockOtelTracer)
|
ctx, otTracer, otelProvider := NewTracerPairWithContext(context.Background(), mockOtelTracer)
|
||||||
otTracer.SetWarningHandler(func(msg string) {
|
otTracer.SetWarningHandler(func(msg string) {
|
||||||
t.Log(msg)
|
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.SpareTraceIDs = append(tracer.SpareTraceIDs, st.traceID)
|
||||||
tracer.SpareSpanIDs = append(tracer.SpareSpanIDs, st.spanIDs...)
|
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)
|
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.SpareTraceIDs = append(tracer.SpareTraceIDs, cast.traceID)
|
||||||
tracer.SpareSpanIDs = append(tracer.SpareSpanIDs, cast.spanIDs...)
|
tracer.SpareSpanIDs = append(tracer.SpareSpanIDs, cast.spanIDs...)
|
||||||
|
|
||||||
@@ -174,7 +173,7 @@ func (cast *currentActiveSpanTest) setup(t *testing.T, tracer *internal.MockTrac
|
|||||||
cast.recordedActiveOTSpanIDs = nil
|
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)
|
checkTraceAndSpans(t, tracer, cast.traceID, cast.spanIDs)
|
||||||
if len(cast.recordedCurrentOtelSpanIDs) != len(cast.spanIDs) {
|
if len(cast.recordedCurrentOtelSpanIDs) != len(cast.spanIDs) {
|
||||||
t.Errorf(
|
t.Errorf(
|
||||||
@@ -236,7 +235,7 @@ func (cast *currentActiveSpanTest) recordSpans(t *testing.T, ctx context.Context
|
|||||||
// context intact test
|
// context intact test
|
||||||
|
|
||||||
type contextIntactTest struct {
|
type contextIntactTest struct {
|
||||||
contextKeyValues []internal.MockContextKeyValue
|
contextKeyValues []mockContextKeyValue
|
||||||
|
|
||||||
recordedContextValues []interface{}
|
recordedContextValues []interface{}
|
||||||
recordIdx int
|
recordIdx int
|
||||||
@@ -256,7 +255,7 @@ type coin3Value struct{}
|
|||||||
|
|
||||||
func newContextIntactTest() *contextIntactTest {
|
func newContextIntactTest() *contextIntactTest {
|
||||||
return &contextIntactTest{
|
return &contextIntactTest{
|
||||||
contextKeyValues: []internal.MockContextKeyValue{
|
contextKeyValues: []mockContextKeyValue{
|
||||||
{
|
{
|
||||||
Key: coin1Key{},
|
Key: coin1Key{},
|
||||||
Value: coin1Value{},
|
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...)
|
tracer.SpareContextKeyValues = append(tracer.SpareContextKeyValues, coin.contextKeyValues...)
|
||||||
|
|
||||||
coin.recordedContextValues = nil
|
coin.recordedContextValues = nil
|
||||||
coin.recordIdx = 0
|
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) {
|
if len(coin.recordedContextValues) != len(coin.contextKeyValues) {
|
||||||
t.Errorf(
|
t.Errorf(
|
||||||
"Expected to have %d recorded context values, got %d",
|
"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.step = 0
|
||||||
bip.recordedBaggage = nil
|
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) {
|
if len(bip.recordedBaggage) != len(bip.baggageItems) {
|
||||||
t.Errorf("Expected %d recordings, got %d", len(bip.baggageItems), len(bip.recordedBaggage))
|
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.step = 0
|
||||||
bio.recordedOTBaggage = nil
|
bio.recordedOTBaggage = nil
|
||||||
bio.recordedOtelBaggage = 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, "OT", bio.baggageItems, bio.recordedOTBaggage)
|
||||||
checkBIORecording(t, "Otel", bio.baggageItems, bio.recordedOtelBaggage)
|
checkBIORecording(t, "Otel", bio.baggageItems, bio.recordedOtelBaggage)
|
||||||
}
|
}
|
||||||
@@ -579,7 +578,7 @@ func generateBaggageKeys(key string) (otKey, otelKey string) {
|
|||||||
|
|
||||||
func checkTraceAndSpans(
|
func checkTraceAndSpans(
|
||||||
t *testing.T,
|
t *testing.T,
|
||||||
tracer *internal.MockTracer,
|
tracer *mockTracer,
|
||||||
expectedTraceID trace.TraceID,
|
expectedTraceID trace.TraceID,
|
||||||
expectedSpanIDs []trace.SpanID,
|
expectedSpanIDs []trace.SpanID,
|
||||||
) {
|
) {
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
// Copyright The OpenTelemetry Authors
|
// Copyright The OpenTelemetry Authors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// 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 (
|
import (
|
||||||
"context"
|
"context"
|
||||||
@@ -21,26 +21,24 @@ import (
|
|||||||
|
|
||||||
//nolint:revive // ignoring missing comments for unexported global variables in an internal package.
|
//nolint:revive // ignoring missing comments for unexported global variables in an internal package.
|
||||||
var (
|
var (
|
||||||
ComponentKey = attribute.Key("component")
|
statusCodeKey = attribute.Key("status.code")
|
||||||
ServiceKey = attribute.Key("service")
|
statusMessageKey = attribute.Key("status.message")
|
||||||
StatusCodeKey = attribute.Key("status.code")
|
errorKey = attribute.Key("error")
|
||||||
StatusMessageKey = attribute.Key("status.message")
|
nameKey = attribute.Key("name")
|
||||||
ErrorKey = attribute.Key("error")
|
|
||||||
NameKey = attribute.Key("name")
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type MockContextKeyValue struct {
|
type mockContextKeyValue struct {
|
||||||
Key interface{}
|
Key interface{}
|
||||||
Value interface{}
|
Value interface{}
|
||||||
}
|
}
|
||||||
|
|
||||||
type MockTracer struct {
|
type mockTracer struct {
|
||||||
embedded.Tracer
|
embedded.Tracer
|
||||||
|
|
||||||
FinishedSpans []*MockSpan
|
FinishedSpans []*mockSpan
|
||||||
SpareTraceIDs []trace.TraceID
|
SpareTraceIDs []trace.TraceID
|
||||||
SpareSpanIDs []trace.SpanID
|
SpareSpanIDs []trace.SpanID
|
||||||
SpareContextKeyValues []MockContextKeyValue
|
SpareContextKeyValues []mockContextKeyValue
|
||||||
TraceFlags trace.TraceFlags
|
TraceFlags trace.TraceFlags
|
||||||
|
|
||||||
randLock sync.Mutex
|
randLock sync.Mutex
|
||||||
@@ -48,14 +46,14 @@ type MockTracer struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
_ trace.Tracer = &MockTracer{}
|
_ trace.Tracer = &mockTracer{}
|
||||||
_ migration.DeferredContextSetupTracerExtension = &MockTracer{}
|
_ migration.DeferredContextSetupTracerExtension = &mockTracer{}
|
||||||
)
|
)
|
||||||
|
|
||||||
func NewMockTracer() *MockTracer {
|
func newMockTracer() *mockTracer {
|
||||||
u := rand.Uint32()
|
u := rand.Uint32()
|
||||||
seed := [32]byte{byte(u), byte(u >> 8), byte(u >> 16), byte(u >> 24)}
|
seed := [32]byte{byte(u), byte(u >> 8), byte(u >> 16), byte(u >> 24)}
|
||||||
return &MockTracer{
|
return &mockTracer{
|
||||||
FinishedSpans: nil,
|
FinishedSpans: nil,
|
||||||
SpareTraceIDs: nil,
|
SpareTraceIDs: nil,
|
||||||
SpareSpanIDs: 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,
|
ctx context.Context,
|
||||||
name string,
|
name string,
|
||||||
opts ...trace.SpanStartOption,
|
opts ...trace.SpanStartOption,
|
||||||
@@ -80,7 +79,7 @@ func (t *MockTracer) Start(
|
|||||||
SpanID: t.getSpanID(),
|
SpanID: t.getSpanID(),
|
||||||
TraceFlags: t.TraceFlags,
|
TraceFlags: t.TraceFlags,
|
||||||
})
|
})
|
||||||
span := &MockSpan{
|
span := &mockSpan{
|
||||||
mockTracer: t,
|
mockTracer: t,
|
||||||
officialTracer: t,
|
officialTracer: t,
|
||||||
spanContext: spanContext,
|
spanContext: spanContext,
|
||||||
@@ -98,10 +97,10 @@ func (t *MockTracer) Start(
|
|||||||
return ctx, span
|
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 {
|
if len(t.SpareContextKeyValues) > 0 {
|
||||||
pair := t.SpareContextKeyValues[0]
|
pair := t.SpareContextKeyValues[0]
|
||||||
t.SpareContextKeyValues[0] = MockContextKeyValue{}
|
t.SpareContextKeyValues[0] = mockContextKeyValue{}
|
||||||
t.SpareContextKeyValues = t.SpareContextKeyValues[1:]
|
t.SpareContextKeyValues = t.SpareContextKeyValues[1:]
|
||||||
if len(t.SpareContextKeyValues) == 0 {
|
if len(t.SpareContextKeyValues) == 0 {
|
||||||
t.SpareContextKeyValues = nil
|
t.SpareContextKeyValues = nil
|
||||||
@@ -111,7 +110,7 @@ func (t *MockTracer) addSpareContextValue(ctx context.Context) context.Context {
|
|||||||
return ctx
|
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() {
|
if parent := t.getParentSpanContext(ctx, config); parent.IsValid() {
|
||||||
return parent.TraceID()
|
return parent.TraceID()
|
||||||
}
|
}
|
||||||
@@ -126,21 +125,21 @@ func (t *MockTracer) getTraceID(ctx context.Context, config *trace.SpanConfig) t
|
|||||||
return t.getRandTraceID()
|
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() {
|
if parent := t.getParentSpanContext(ctx, config); parent.IsValid() {
|
||||||
return parent.SpanID()
|
return parent.SpanID()
|
||||||
}
|
}
|
||||||
return trace.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() {
|
if !config.NewRoot() {
|
||||||
return trace.SpanContextFromContext(ctx)
|
return trace.SpanContextFromContext(ctx)
|
||||||
}
|
}
|
||||||
return trace.SpanContext{}
|
return trace.SpanContext{}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *MockTracer) getSpanID() trace.SpanID {
|
func (t *mockTracer) getSpanID() trace.SpanID {
|
||||||
if len(t.SpareSpanIDs) > 0 {
|
if len(t.SpareSpanIDs) > 0 {
|
||||||
spanID := t.SpareSpanIDs[0]
|
spanID := t.SpareSpanIDs[0]
|
||||||
t.SpareSpanIDs = t.SpareSpanIDs[1:]
|
t.SpareSpanIDs = t.SpareSpanIDs[1:]
|
||||||
@@ -152,7 +151,7 @@ func (t *MockTracer) getSpanID() trace.SpanID {
|
|||||||
return t.getRandSpanID()
|
return t.getRandSpanID()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *MockTracer) getRandSpanID() trace.SpanID {
|
func (t *mockTracer) getRandSpanID() trace.SpanID {
|
||||||
t.randLock.Lock()
|
t.randLock.Lock()
|
||||||
defer t.randLock.Unlock()
|
defer t.randLock.Unlock()
|
||||||
|
|
||||||
@@ -162,7 +161,7 @@ func (t *MockTracer) getRandSpanID() trace.SpanID {
|
|||||||
return sid
|
return sid
|
||||||
}
|
}
|
||||||
|
|
||||||
func (t *MockTracer) getRandTraceID() trace.TraceID {
|
func (t *mockTracer) getRandTraceID() trace.TraceID {
|
||||||
t.randLock.Lock()
|
t.randLock.Lock()
|
||||||
defer t.randLock.Unlock()
|
defer t.randLock.Unlock()
|
||||||
|
|
||||||
@@ -172,25 +171,26 @@ func (t *MockTracer) getRandTraceID() trace.TraceID {
|
|||||||
return tid
|
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)
|
return t.addSpareContextValue(ctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
type MockEvent struct {
|
type mockEvent struct {
|
||||||
Timestamp time.Time
|
Timestamp time.Time
|
||||||
Name string
|
Name string
|
||||||
Attributes []attribute.KeyValue
|
Attributes []attribute.KeyValue
|
||||||
}
|
}
|
||||||
|
|
||||||
type MockLink struct {
|
type mockLink struct {
|
||||||
SpanContext trace.SpanContext
|
SpanContext trace.SpanContext
|
||||||
Attributes []attribute.KeyValue
|
Attributes []attribute.KeyValue
|
||||||
}
|
}
|
||||||
|
|
||||||
type MockSpan struct {
|
type mockSpan struct {
|
||||||
embedded.Span
|
embedded.Span
|
||||||
|
|
||||||
mockTracer *MockTracer
|
mockTracer *mockTracer
|
||||||
officialTracer trace.Tracer
|
officialTracer trace.Tracer
|
||||||
spanContext trace.SpanContext
|
spanContext trace.SpanContext
|
||||||
SpanKind trace.SpanKind
|
SpanKind trace.SpanKind
|
||||||
@@ -200,40 +200,40 @@ type MockSpan struct {
|
|||||||
StartTime time.Time
|
StartTime time.Time
|
||||||
EndTime time.Time
|
EndTime time.Time
|
||||||
ParentSpanID trace.SpanID
|
ParentSpanID trace.SpanID
|
||||||
Events []MockEvent
|
Events []mockEvent
|
||||||
Links []MockLink
|
Links []mockLink
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
_ trace.Span = &MockSpan{}
|
_ trace.Span = &mockSpan{}
|
||||||
_ migration.OverrideTracerSpanExtension = &MockSpan{}
|
_ migration.OverrideTracerSpanExtension = &mockSpan{}
|
||||||
)
|
)
|
||||||
|
|
||||||
func (s *MockSpan) SpanContext() trace.SpanContext {
|
func (s *mockSpan) SpanContext() trace.SpanContext {
|
||||||
return s.spanContext
|
return s.spanContext
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *MockSpan) IsRecording() bool {
|
func (s *mockSpan) IsRecording() bool {
|
||||||
return s.recording
|
return s.recording
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *MockSpan) SetStatus(code codes.Code, msg string) {
|
func (s *mockSpan) SetStatus(code codes.Code, msg string) {
|
||||||
s.SetAttributes(StatusCodeKey.Int(int(code)), StatusMessageKey.String(msg))
|
s.SetAttributes(statusCodeKey.Int(int(code)), statusMessageKey.String(msg))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *MockSpan) SetName(name string) {
|
func (s *mockSpan) SetName(name string) {
|
||||||
s.SetAttributes(NameKey.String(name))
|
s.SetAttributes(nameKey.String(name))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *MockSpan) SetError(v bool) {
|
func (s *mockSpan) SetError(v bool) {
|
||||||
s.SetAttributes(ErrorKey.Bool(v))
|
s.SetAttributes(errorKey.Bool(v))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *MockSpan) SetAttributes(attributes ...attribute.KeyValue) {
|
func (s *mockSpan) SetAttributes(attributes ...attribute.KeyValue) {
|
||||||
s.applyUpdate(attributes)
|
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))
|
updateM := make(map[attribute.Key]attribute.Value, len(update))
|
||||||
for _, kv := range update {
|
for _, kv := range update {
|
||||||
updateM[kv.Key] = kv.Value
|
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() {
|
if !s.EndTime.IsZero() {
|
||||||
return // already finished
|
return // already finished
|
||||||
}
|
}
|
||||||
@@ -268,7 +268,7 @@ func (s *MockSpan) End(options ...trace.SpanEndOption) {
|
|||||||
s.mockTracer.FinishedSpans = append(s.mockTracer.FinishedSpans, s)
|
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 {
|
if err == nil {
|
||||||
return // no-op on nil error
|
return // no-op on nil error
|
||||||
}
|
}
|
||||||
@@ -285,28 +285,28 @@ func (s *MockSpan) RecordError(err error, opts ...trace.EventOption) {
|
|||||||
s.AddEvent(semconv.ExceptionEventName, opts...)
|
s.AddEvent(semconv.ExceptionEventName, opts...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *MockSpan) Tracer() trace.Tracer {
|
func (s *mockSpan) Tracer() trace.Tracer {
|
||||||
return s.officialTracer
|
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...)
|
c := trace.NewEventConfig(o...)
|
||||||
s.Events = append(s.Events, MockEvent{
|
s.Events = append(s.Events, mockEvent{
|
||||||
Timestamp: c.Timestamp(),
|
Timestamp: c.Timestamp(),
|
||||||
Name: name,
|
Name: name,
|
||||||
Attributes: c.Attributes(),
|
Attributes: c.Attributes(),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *MockSpan) AddLink(link trace.Link) {
|
func (s *mockSpan) AddLink(link trace.Link) {
|
||||||
s.Links = append(s.Links, MockLink{
|
s.Links = append(s.Links, mockLink{
|
||||||
SpanContext: link.SpanContext,
|
SpanContext: link.SpanContext,
|
||||||
Attributes: link.Attributes,
|
Attributes: link.Attributes,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *MockSpan) OverrideTracer(tracer trace.Tracer) {
|
func (s *mockSpan) OverrideTracer(tracer trace.Tracer) {
|
||||||
s.officialTracer = tracer
|
s.officialTracer = tracer
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *MockSpan) TracerProvider() trace.TracerProvider { return noop.NewTracerProvider() }
|
func (s *mockSpan) TracerProvider() trace.TracerProvider { return noop.NewTracerProvider() }
|
@@ -7,14 +7,13 @@ import (
|
|||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"go.opentelemetry.io/otel/attribute"
|
"go.opentelemetry.io/otel/attribute"
|
||||||
"go.opentelemetry.io/otel/bridge/opentracing/internal"
|
|
||||||
"go.opentelemetry.io/otel/trace"
|
"go.opentelemetry.io/otel/trace"
|
||||||
"go.opentelemetry.io/otel/trace/embedded"
|
"go.opentelemetry.io/otel/trace/embedded"
|
||||||
)
|
)
|
||||||
|
|
||||||
type namedMockTracer struct {
|
type namedMockTracer struct {
|
||||||
name string
|
name string
|
||||||
*internal.MockTracer
|
*mockTracer
|
||||||
}
|
}
|
||||||
|
|
||||||
type namedMockTracerProvider struct{ embedded.TracerProvider }
|
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 {
|
func (p *namedMockTracerProvider) Tracer(name string, opts ...trace.TracerOption) trace.Tracer {
|
||||||
return &namedMockTracer{
|
return &namedMockTracer{
|
||||||
name: name,
|
name: name,
|
||||||
MockTracer: internal.NewMockTracer(),
|
mockTracer: newMockTracer(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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
|
|
@@ -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=
|
|
@@ -9,7 +9,6 @@ module-sets:
|
|||||||
- go.opentelemetry.io/otel/bridge/opencensus
|
- go.opentelemetry.io/otel/bridge/opencensus
|
||||||
- go.opentelemetry.io/otel/bridge/opencensus/test
|
- go.opentelemetry.io/otel/bridge/opencensus/test
|
||||||
- go.opentelemetry.io/otel/bridge/opentracing
|
- 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/otlpmetricgrpc
|
||||||
- go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp
|
- go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp
|
||||||
- go.opentelemetry.io/otel/exporters/otlp/otlptrace
|
- go.opentelemetry.io/otel/exporters/otlp/otlptrace
|
||||||
|
Reference in New Issue
Block a user