aboutsummaryrefslogtreecommitdiff
path: root/kamon-core/src/test/scala/kamon/trace/TracerSpec.scala
diff options
context:
space:
mode:
Diffstat (limited to 'kamon-core/src/test/scala/kamon/trace/TracerSpec.scala')
-rw-r--r--kamon-core/src/test/scala/kamon/trace/TracerSpec.scala83
1 files changed, 9 insertions, 74 deletions
diff --git a/kamon-core/src/test/scala/kamon/trace/TracerSpec.scala b/kamon-core/src/test/scala/kamon/trace/TracerSpec.scala
index 5abfe723..fb5bb313 100644
--- a/kamon-core/src/test/scala/kamon/trace/TracerSpec.scala
+++ b/kamon-core/src/test/scala/kamon/trace/TracerSpec.scala
@@ -2,10 +2,9 @@ package kamon.trace
import com.typesafe.config.ConfigFactory
import kamon.Kamon
+import kamon.context.Context
import kamon.testkit.{SpanBuilding, SpanInspector}
import kamon.trace.Span.TagValue
-import kamon.trace.SpanContext.Source
-import kamon.trace.SpanContextCodec.Format
import org.scalatest.{Matchers, OptionValues, WordSpec}
class TracerSpec extends WordSpec with Matchers with SpanBuilding with OptionValues {
@@ -42,33 +41,16 @@ class TracerSpec extends WordSpec with Matchers with SpanBuilding with OptionVal
("boolean" -> TagValue.True))
}
-// "do not interfere with the currently active Span if not requested when starting a Span" in {
-// val previouslyActiveSpan = tracer.activeSpan()
-// tracer.buildSpan("myOperation").start()
-// tracer.activeSpan() should be theSameInstanceAs(previouslyActiveSpan)
-// }
-//
-// "make a span active with started with the .startActive() function and restore the previous Span when deactivated" in {
-// val previouslyActiveSpan = tracer.activeSpan()
-// val activeSpan = tracer.buildSpan("myOperation").startActive()
-//
-// tracer.activeSpan() shouldNot be theSameInstanceAs(previouslyActiveSpan)
-// val activeSpanData = inspect(activeSpan)
-// activeSpanData.operationName() shouldBe "myOperation"
-//
-// activeSpan.deactivate()
-// tracer.activeSpan() should be theSameInstanceAs(previouslyActiveSpan)
-// }
-
"not have any parent Span if there is ActiveSpan and no parent was explicitly given" in {
val span = tracer.buildSpan("myOperation").start()
val spanData = inspect(span)
spanData.context().parentID shouldBe IdentityProvider.NoIdentifier
}
- "use the currently active span as parent" in {
+
+ "automatically take the Span from the current Context as parent" in {
val parent = tracer.buildSpan("myOperation").start()
- val child = Kamon.withActiveSpan(parent) {
+ val child = Kamon.withContext(Context.create(Span.ContextKey, parent)) {
tracer.buildSpan("childOperation").asChildOf(parent).start()
}
@@ -79,7 +61,7 @@ class TracerSpec extends WordSpec with Matchers with SpanBuilding with OptionVal
"ignore the currently active span as parent if explicitly requested" in {
val parent = tracer.buildSpan("myOperation").start()
- val child = Kamon.withActiveSpan(parent) {
+ val child = Kamon.withContext(Context.create(Span.ContextKey, parent)) {
tracer.buildSpan("childOperation").ignoreActiveSpan().start()
}
@@ -93,53 +75,6 @@ class TracerSpec extends WordSpec with Matchers with SpanBuilding with OptionVal
spanData.startTimestamp() shouldBe 100
}
- "inject and extract a SpanContext from a TextMap carrier" in {
- val spanContext = createSpanContext()
- val injected = Kamon.inject(spanContext, Format.TextMap)
- val extractedSpanContext = Kamon.extract(Format.TextMap, injected).value
-
- spanContext.traceID shouldBe(extractedSpanContext.traceID)
- spanContext.spanID shouldBe(extractedSpanContext.spanID)
- spanContext.parentID shouldBe(extractedSpanContext.parentID)
- spanContext.baggage.getAll() shouldBe(extractedSpanContext.baggage.getAll())
- }
-
- "inject and extract a SpanContext from a TextMap carrier supplied by the caller" in {
- val spanContext = createSpanContext()
- val carrier = TextMap.Default()
- Kamon.inject(spanContext, Format.TextMap, carrier)
- val extractedSpanContext = Kamon.extract(Format.TextMap, carrier).value
-
- spanContext.traceID shouldBe(extractedSpanContext.traceID)
- spanContext.spanID shouldBe(extractedSpanContext.spanID)
- spanContext.parentID shouldBe(extractedSpanContext.parentID)
- spanContext.baggage.getAll() shouldBe(extractedSpanContext.baggage.getAll())
- }
-
- "inject and extract a SpanContext from a HttpHeaders carrier" in {
- val spanContext = createSpanContext()
- val injected = Kamon.inject(spanContext, Format.HttpHeaders)
- val extractedSpanContext = Kamon.extract(Format.HttpHeaders, injected).value
-
- spanContext.traceID shouldBe(extractedSpanContext.traceID)
- spanContext.spanID shouldBe(extractedSpanContext.spanID)
- spanContext.parentID shouldBe(extractedSpanContext.parentID)
- spanContext.baggage.getAll() shouldBe(extractedSpanContext.baggage.getAll())
- }
-
- "inject and extract a SpanContext from a HttpHeaders using a TextMap provided by the caller" in {
- val spanContext = createSpanContext()
- val carrier = TextMap.Default()
- Kamon.inject(spanContext, Format.HttpHeaders, carrier)
- val extractedSpanContext = Kamon.extract(Format.HttpHeaders, carrier).value
-
- spanContext.traceID shouldBe(extractedSpanContext.traceID)
- spanContext.spanID shouldBe(extractedSpanContext.spanID)
- spanContext.parentID shouldBe(extractedSpanContext.parentID)
- spanContext.baggage.getAll() shouldBe(extractedSpanContext.baggage.getAll())
- }
-
-
"preserve the same Span and Parent identifier when creating a Span with a remote parent if join-remote-parents-with-same-span-id is enabled" in {
val previousConfig = Kamon.config()
@@ -148,12 +83,12 @@ class TracerSpec extends WordSpec with Matchers with SpanBuilding with OptionVal
.withFallback(Kamon.config())
}
- val remoteParent = createSpanContext().copy(source = Source.Remote)
+ val remoteParent = Span.Remote(createSpanContext())
val childData = inspect(tracer.buildSpan("local").asChildOf(remoteParent).start())
- childData.context().traceID shouldBe remoteParent.traceID
- childData.context().parentID shouldBe remoteParent.parentID
- childData.context().spanID shouldBe remoteParent.spanID
+ childData.context().traceID shouldBe remoteParent.context.traceID
+ childData.context().parentID shouldBe remoteParent.context.parentID
+ childData.context().spanID shouldBe remoteParent.context.spanID
Kamon.reconfigure(previousConfig)
}