diff --git a/internal/testutil/trace.go b/internal/testutil/trace.go index 5cf28f894146..62df6fd6d01b 100644 --- a/internal/testutil/trace.go +++ b/internal/testutil/trace.go @@ -27,7 +27,7 @@ import ( // TestExporter is a test utility exporter. It should be created with NewtestExporter. type TestExporter struct { mu sync.Mutex - Spans []*trace.SpanData + spans []*trace.SpanData Stats chan *view.Data Views []*view.View @@ -56,7 +56,16 @@ func NewTestExporter(views ...*view.View) *TestExporter { func (te *TestExporter) ExportSpan(s *trace.SpanData) { te.mu.Lock() defer te.mu.Unlock() - te.Spans = append(te.Spans, s) + te.spans = append(te.spans, s) +} + +// Spans returns the exported spans. +func (te *TestExporter) Spans() []*trace.SpanData { + te.mu.Lock() + defer te.mu.Unlock() + spans := make([]*trace.SpanData, len(te.spans)) + copy(spans, te.spans) + return spans } // ExportView exports a view. diff --git a/internal/trace/trace_test.go b/internal/trace/trace_test.go index 2e03d2a89df0..c5ba3a88fd35 100644 --- a/internal/trace/trace_test.go +++ b/internal/trace/trace_test.go @@ -63,7 +63,7 @@ func TestStartSpan_OpenCensus(t *testing.T) { if IsOpenTelemetryTracingEnabled() { t.Errorf("got true, want false") } - spans := te.Spans + spans := te.Spans() if len(spans) != 1 { t.Fatalf("got %d, want 1", len(spans)) }