...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package global
16
17 import (
18 "context"
19 "testing"
20
21 "go.opentelemetry.io/otel/internal/internaltest"
22 )
23
24 func TestTextMapPropagatorDelegation(t *testing.T) {
25 ResetForTest(t)
26 ctx := context.Background()
27 carrier := internaltest.NewTextMapCarrier(nil)
28
29
30 initial := TextMapPropagator()
31 initial.Inject(ctx, carrier)
32 ctx = initial.Extract(ctx, carrier)
33 if !carrier.GotN(t, 0) || !carrier.SetN(t, 0) {
34 return
35 }
36
37
38 delegate := internaltest.NewTextMapPropagator("test")
39 delegate.Inject(ctx, carrier)
40 ctx = delegate.Extract(ctx, carrier)
41 if !delegate.InjectedN(t, carrier, 1) || !delegate.ExtractedN(t, ctx, 1) {
42 return
43 }
44
45
46
47 SetTextMapPropagator(delegate)
48 initial.Inject(ctx, carrier)
49 ctx = initial.Extract(ctx, carrier)
50 delegate.InjectedN(t, carrier, 2)
51 delegate.ExtractedN(t, ctx, 2)
52 }
53
54 func TestTextMapPropagatorDelegationNil(t *testing.T) {
55 ResetForTest(t)
56 ctx := context.Background()
57 carrier := internaltest.NewTextMapCarrier(nil)
58
59
60 initial := TextMapPropagator()
61 initial.Inject(ctx, carrier)
62 ctx = initial.Extract(ctx, carrier)
63 if !carrier.GotN(t, 0) || !carrier.SetN(t, 0) {
64 return
65 }
66
67
68 SetTextMapPropagator(nil)
69 initial.Inject(ctx, carrier)
70 initial.Extract(ctx, carrier)
71 if !carrier.GotN(t, 0) || !carrier.SetN(t, 0) {
72 return
73 }
74 }
75
76 func TestTextMapPropagatorFields(t *testing.T) {
77 ResetForTest(t)
78 initial := TextMapPropagator()
79 delegate := internaltest.NewTextMapPropagator("test")
80 delegateFields := delegate.Fields()
81
82
83 if got := initial.Fields(); fieldsEqual(got, delegateFields) {
84 t.Fatalf("testing fields (%v) matched Noop fields (%v)", delegateFields, got)
85 }
86 SetTextMapPropagator(delegate)
87
88 if got := initial.Fields(); !fieldsEqual(got, delegateFields) {
89 t.Errorf("global TextMapPropagator.Fields returned %v instead of delegating, want (%v)", got, delegateFields)
90 }
91
92 if got := TextMapPropagator().Fields(); !fieldsEqual(got, delegateFields) {
93 t.Errorf("global TextMapPropagator.Fields returned %v, want (%v)", got, delegateFields)
94 }
95 }
96
97 func fieldsEqual(f1, f2 []string) bool {
98 if len(f1) != len(f2) {
99 return false
100 }
101 for i := range f1 {
102 if f1[i] != f2[i] {
103 return false
104 }
105 }
106 return true
107 }
108
View as plain text