mirror of
https://github.com/cloudflare/cloudflared.git
synced 2025-07-27 21:40:02 +00:00
TUN-6248: Fix panic in cloudflared during tracing when origin doesn't provide header map
This commit is contained in:
@@ -1,13 +1,16 @@
|
||||
package tracing
|
||||
|
||||
import (
|
||||
"context"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"testing"
|
||||
|
||||
"github.com/rs/zerolog"
|
||||
"github.com/stretchr/testify/assert"
|
||||
tracesdk "go.opentelemetry.io/otel/sdk/trace"
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
tracepb "go.opentelemetry.io/proto/otlp/trace/v1"
|
||||
)
|
||||
|
||||
func TestNewCfTracer(t *testing.T) {
|
||||
@@ -48,3 +51,19 @@ func TestNewCfTracerInvalidHeaders(t *testing.T) {
|
||||
assert.IsType(t, &NoopOtlpClient{}, tr.exporter)
|
||||
}
|
||||
}
|
||||
|
||||
func TestAddingSpansWithNilMap(t *testing.T) {
|
||||
req := httptest.NewRequest("GET", "http://localhost", nil)
|
||||
req.Header.Add(TracerContextName, "14cb070dde8e51fc5ae8514e69ba42ca:b38f1bf5eae406f3:0:1")
|
||||
tr := NewTracedRequest(req)
|
||||
|
||||
exporter := tr.exporter.(*InMemoryOtlpClient)
|
||||
|
||||
// add fake spans
|
||||
spans := createResourceSpans([]*tracepb.Span{createOtlpSpan(traceId)})
|
||||
err := exporter.UploadTraces(context.Background(), spans)
|
||||
assert.NoError(t, err)
|
||||
|
||||
// a panic shouldn't occur
|
||||
tr.AddSpans(nil, &zerolog.Logger{})
|
||||
}
|
||||
|
Reference in New Issue
Block a user