trace_test.go 878 B

1234567891011121314151617181920212223242526272829303132
  1. package trace
  2. import (
  3. "context"
  4. "net/http"
  5. "net/http/httptest"
  6. "testing"
  7. "github.com/stretchr/testify/assert"
  8. sdktrace "go.opentelemetry.io/otel/sdk/trace"
  9. semconv "go.opentelemetry.io/otel/semconv/v1.4.0"
  10. oteltrace "go.opentelemetry.io/otel/trace"
  11. )
  12. func TestSpanIDFromContext(t *testing.T) {
  13. tracer := sdktrace.NewTracerProvider().Tracer("test")
  14. ctx, span := tracer.Start(
  15. context.Background(),
  16. "foo",
  17. oteltrace.WithSpanKind(oteltrace.SpanKindClient),
  18. oteltrace.WithAttributes(semconv.HTTPClientAttributesFromHTTPRequest(httptest.NewRequest(http.MethodGet, "/", nil))...),
  19. )
  20. defer span.End()
  21. assert.NotEmpty(t, TraceIDFromContext(ctx))
  22. assert.NotEmpty(t, SpanIDFromContext(ctx))
  23. }
  24. func TestSpanIDFromContextEmpty(t *testing.T) {
  25. assert.Empty(t, TraceIDFromContext(context.Background()))
  26. assert.Empty(t, SpanIDFromContext(context.Background()))
  27. }