@@ -7,13 +7,15 @@ import datadog.trace.api.ProcessTags
77import datadog.trace.api.TagMap
88import datadog.trace.api.TraceConfig
99import datadog.trace.api.WellKnownTags
10+ import datadog.trace.api.config.GeneralConfig
1011import datadog.trace.api.datastreams.DataStreamsTags
1112import datadog.trace.api.datastreams.StatsPoint
1213import datadog.trace.api.time.ControllableTimeSource
1314import datadog.trace.bootstrap.instrumentation.api.AgentPropagation
1415import datadog.trace.bootstrap.instrumentation.api.AgentSpan
1516import datadog.trace.bootstrap.instrumentation.api.AgentTracer
1617import datadog.trace.common.metrics.Sink
18+ import datadog.trace.core.CoreTracer
1719import datadog.trace.core.propagation.ExtractedContext
1820import datadog.trace.core.test.DDCoreSpecification
1921
@@ -502,9 +504,10 @@ class DefaultPathwayContextTest extends DDCoreSpecification {
502504
503505 def dataStreams = new DefaultDataStreamsMonitoring(sink, features, timeSource, { globalTraceConfig }, wellKnownTags, payloadWriter, DEFAULT_BUCKET_DURATION_NANOS)
504506
507+ DataStreamsTags.setGlobalBaseHash(baseHash)
505508 def context = new DefaultPathwayContext(timeSource, baseHash, null)
506509 timeSource.advance(MILLISECONDS.toNanos(50))
507- context.setCheckpoint(fromTags(DataStreamsTags.create(" itnernal " , DataStreamsTags.Direction.Inbound)), pointConsumer)
510+ context.setCheckpoint(fromTags(DataStreamsTags.create(" internal " , DataStreamsTags.Direction.Inbound)), pointConsumer)
508511 def encoded = context.encode()
509512 Map<String, String> carrier = [
510513 (PROPAGATION_KEY_BASE64): encoded,
@@ -518,6 +521,7 @@ class DefaultPathwayContextTest extends DDCoreSpecification {
518521 def extractedSpan = AgentSpan.fromContext(extractedContext)
519522
520523 then:
524+ encoded == " L+ lDG/ Pa9hRkZA == "
521525 !dynamicConfigEnabled || extractedSpan != null
522526 if (dynamicConfigEnabled) {
523527 def extracted = extractedSpan.context()
@@ -546,8 +550,15 @@ class DefaultPathwayContextTest extends DDCoreSpecification {
546550 isDataStreamsEnabled() >> { return globalDsmEnabled }
547551 }
548552
553+ def tracerApi = Mock(AgentTracer.TracerAPI) {
554+ captureTraceConfig() >> globalTraceConfig
555+ }
556+ AgentTracer.TracerAPI originalTracer = AgentTracer.get()
557+ AgentTracer.forceRegister(tracerApi)
558+
549559 def dataStreams = new DefaultDataStreamsMonitoring(sink, features, timeSource, { globalTraceConfig }, wellKnownTags, payloadWriter, DEFAULT_BUCKET_DURATION_NANOS)
550560
561+ DataStreamsTags.setGlobalBaseHash(baseHash)
551562 def context = new DefaultPathwayContext(timeSource, baseHash, null)
552563 timeSource.advance(MILLISECONDS.toNanos(50))
553564 context.setCheckpoint(fromTags(DataStreamsTags.create(" internal" , DataStreamsTags.Direction.Inbound)), pointConsumer)
@@ -562,6 +573,7 @@ class DefaultPathwayContextTest extends DDCoreSpecification {
562573 def extractedSpan = AgentSpan.fromContext(extractedContext)
563574
564575 then:
576+ encoded == " L+ lDG/ Pa9hRkZA == "
565577 if (globalDsmEnabled) {
566578 extractedSpan != null
567579 def extracted = extractedSpan.context()
@@ -572,6 +584,9 @@ class DefaultPathwayContextTest extends DDCoreSpecification {
572584 extractedSpan == null
573585 }
574586
587+ cleanup:
588+ AgentTracer.forceRegister(originalTracer)
589+
575590 where:
576591 globalDsmEnabled << [true, false]
577592 }
@@ -589,19 +604,27 @@ class DefaultPathwayContextTest extends DDCoreSpecification {
589604 isDataStreamsEnabled() >> { return globalDsmEnabled }
590605 }
591606
592- def dataStreams = new DefaultDataStreamsMonitoring(sink, features, timeSource, { globalTraceConfig }, wellKnownTags, payloadWriter, DEFAULT_BUCKET_DURATION_NANOS)
607+ def tracerApi = Mock(AgentTracer.TracerAPI) {
608+ captureTraceConfig() >> globalTraceConfig
609+ }
610+ AgentTracer.TracerAPI originalTracer = AgentTracer.get()
611+ AgentTracer.forceRegister(tracerApi)
612+
613+ def dataStreams = new DefaultDataStreamsMonitoring(sink, features, timeSource, { globalTraceConfig },
614+ wellKnownTags, payloadWriter, DEFAULT_BUCKET_DURATION_NANOS)
593615
616+ DataStreamsTags.setGlobalBaseHash(baseHash)
594617 def context = new DefaultPathwayContext(timeSource, baseHash, null)
595618 timeSource.advance(MILLISECONDS.toNanos(50))
596- context.setCheckpoint(fromTags(DataStreamsTags.create(" internal" , null )), pointConsumer)
619+ context.setCheckpoint(fromTags(DataStreamsTags.create(" internal" , DataStreamsTags.Direction.Inbound )), pointConsumer)
597620 def encoded = context.encode()
598621 Map<String, String> carrier = [(PROPAGATION_KEY_BASE64): encoded, " someotherkey" : " someothervalue" ]
599622 def contextVisitor = new Base64MapContextVisitor()
600- def spanContext = new ExtractedContext(DDTraceId.ONE, 1, 0, null, 0, null, (TagMap)null, null, null, null, DATADOG)
623+ def spanContext = new ExtractedContext(DDTraceId.ONE, 1, 0, null, 0,
624+ null, (TagMap)null, null, null, globalTraceConfig, DATADOG)
601625 def baseContext = AgentSpan.fromSpanContext(spanContext).storeInto(root())
602626 def propagator = dataStreams.propagator()
603627
604-
605628 when:
606629 def extractedContext = propagator.extract(baseContext, carrier, contextVisitor)
607630 def extractedSpan = AgentSpan.fromContext(extractedContext)
@@ -614,13 +637,17 @@ class DefaultPathwayContextTest extends DDCoreSpecification {
614637
615638 then:
616639 extracted != null
640+ encoded == " L+ lDG/ Pa9hRkZA == "
617641 if (globalDsmEnabled) {
618642 extracted.pathwayContext != null
619643 extracted.pathwayContext.isStarted()
620644 } else {
621645 extracted.pathwayContext == null
622646 }
623647
648+ cleanup:
649+ AgentTracer.forceRegister(originalTracer)
650+
624651 where:
625652 globalDsmEnabled << [true, false]
626653 }
@@ -661,4 +688,4 @@ class DefaultPathwayContextTest extends DDCoreSpecification {
661688 }
662689 }
663690 }
664- }
691+ }
0 commit comments