@@ -27,7 +27,7 @@ final class JaegerTracerTests: XCTestCase {
2727 func test_extract_w3c_trace_context_into_baggage( ) {
2828 let eventLoopGroup = MultiThreadedEventLoopGroup ( numberOfThreads: 1 )
2929 let reporter = TestSpanReporter ( eventLoop: eventLoopGroup. next ( ) )
30- let settings = JaegerTracer . Settings ( serviceName: " test " , reporter: . custom( reporter) )
30+ let settings = JaegerTracer . Settings ( serviceName: " test " , reporter: . custom( reporter) , sampler : ConstantSampler ( samples : false ) )
3131 let tracer = JaegerTracer ( settings: settings, group: eventLoopGroup)
3232
3333 let traceContext = TraceContext ( parent: . random( ) , state: . none)
@@ -45,7 +45,7 @@ final class JaegerTracerTests: XCTestCase {
4545 func test_extract_missing_w3c_trace_context_into_baggage( ) {
4646 let eventLoopGroup = MultiThreadedEventLoopGroup ( numberOfThreads: 1 )
4747 let reporter = TestSpanReporter ( eventLoop: eventLoopGroup. next ( ) )
48- let settings = JaegerTracer . Settings ( serviceName: " test " , reporter: . custom( reporter) )
48+ let settings = JaegerTracer . Settings ( serviceName: " test " , reporter: . custom( reporter) , sampler : ConstantSampler ( samples : false ) )
4949 let tracer = JaegerTracer ( settings: settings, group: eventLoopGroup)
5050
5151 var baggage = Baggage . topLevel
@@ -58,7 +58,7 @@ final class JaegerTracerTests: XCTestCase {
5858 func test_extract_missing_w3c_trace_context_without_state_into_baggage( ) {
5959 let eventLoopGroup = MultiThreadedEventLoopGroup ( numberOfThreads: 1 )
6060 let reporter = TestSpanReporter ( eventLoop: eventLoopGroup. next ( ) )
61- let settings = JaegerTracer . Settings ( serviceName: " test " , reporter: . custom( reporter) )
61+ let settings = JaegerTracer . Settings ( serviceName: " test " , reporter: . custom( reporter) , sampler : ConstantSampler ( samples : false ) )
6262 let tracer = JaegerTracer ( settings: settings, group: eventLoopGroup)
6363
6464 let traceContext = TraceContext ( parent: . random( ) , state: . none)
@@ -76,7 +76,7 @@ final class JaegerTracerTests: XCTestCase {
7676 func test_inject_w3c_trace_context_into_headers( ) {
7777 let eventLoopGroup = MultiThreadedEventLoopGroup ( numberOfThreads: 1 )
7878 let reporter = TestSpanReporter ( eventLoop: eventLoopGroup. next ( ) )
79- let settings = JaegerTracer . Settings ( serviceName: " test " , reporter: . custom( reporter) )
79+ let settings = JaegerTracer . Settings ( serviceName: " test " , reporter: . custom( reporter) , sampler : ConstantSampler ( samples : false ) )
8080 let tracer = JaegerTracer ( settings: settings, group: eventLoopGroup)
8181
8282 let traceContext = TraceContext ( parent: . random( ) , state: . none)
@@ -94,7 +94,7 @@ final class JaegerTracerTests: XCTestCase {
9494 func test_inject_missing_w3c_trace_context_into_headers( ) {
9595 let eventLoopGroup = MultiThreadedEventLoopGroup ( numberOfThreads: 1 )
9696 let reporter = TestSpanReporter ( eventLoop: eventLoopGroup. next ( ) )
97- let settings = JaegerTracer . Settings ( serviceName: " test " , reporter: . custom( reporter) )
97+ let settings = JaegerTracer . Settings ( serviceName: " test " , reporter: . custom( reporter) , sampler : ConstantSampler ( samples : false ) )
9898 let tracer = JaegerTracer ( settings: settings, group: eventLoopGroup)
9999
100100 let baggage = Baggage . topLevel
@@ -105,13 +105,43 @@ final class JaegerTracerTests: XCTestCase {
105105 XCTAssertTrue ( headers. isEmpty)
106106 }
107107
108+ func test_creates_trace_context_for_root_span( ) {
109+ let eventLoopGroup = MultiThreadedEventLoopGroup ( numberOfThreads: 1 )
110+ let reporter = TestSpanReporter ( eventLoop: eventLoopGroup. next ( ) )
111+ let settings = JaegerTracer . Settings ( serviceName: " test " , reporter: . custom( reporter) , sampler: ConstantSampler ( samples: false ) )
112+ let tracer = JaegerTracer ( settings: settings, group: eventLoopGroup)
113+
114+ let span = tracer. startSpan ( named: " test " , baggage: . topLevel, ofKind: . server, at: . now( ) )
115+ XCTAssertNotNil ( span. baggage. traceContext)
116+ }
117+
118+ func test_regenerates_parent_id_in_existing_trace_context( ) {
119+ let eventLoopGroup = MultiThreadedEventLoopGroup ( numberOfThreads: 1 )
120+ let reporter = TestSpanReporter ( eventLoop: eventLoopGroup. next ( ) )
121+ let settings = JaegerTracer . Settings ( serviceName: " test " , reporter: . custom( reporter) , sampler: ConstantSampler ( samples: false ) )
122+ let tracer = JaegerTracer ( settings: settings, group: eventLoopGroup)
123+
124+ var parentBaggage = Baggage . topLevel
125+ parentBaggage. traceContext = TraceContext ( parent: . random( ) , state: TraceState ( rawValue: " rojo=123 " ) !)
126+
127+ let parent = tracer. startSpan ( named: " test " , baggage: parentBaggage, ofKind: . server, at: . now( ) ) as! JaegerSpan
128+ let child = tracer. startSpan ( named: " test " , baggage: parent. baggage, ofKind: . server, at: . now( ) ) as! JaegerSpan
129+
130+ XCTAssertNotNil ( child. baggage. traceContext)
131+ XCTAssertEqual ( child. baggage. traceContext? . state, parentBaggage. traceContext? . state)
132+ XCTAssertEqual ( child. baggage. traceContext? . parent. traceID, parentBaggage. traceContext? . parent. traceID)
133+ XCTAssertNotEqual ( child. baggage. traceContext? . parent. parentID, parentBaggage. traceContext? . parent. parentID)
134+ XCTAssertEqual ( child. baggage. traceContext? . parent. traceFlags, parentBaggage. traceContext? . parent. traceFlags)
135+ XCTAssertEqual ( child. links. first? . baggage. traceContext, parent. baggage. traceContext)
136+ }
137+
108138 // MARK: - Flushing
109139
110140 func test_emits_spans_to_reporter_on_forceFlush( ) {
111141 let eventLoopGroup = MultiThreadedEventLoopGroup ( numberOfThreads: 1 )
112142 let reporter = TestSpanReporter ( eventLoop: eventLoopGroup. next ( ) )
113143
114- let settings = JaegerTracer . Settings ( serviceName: " test " , reporter: . custom( reporter) )
144+ let settings = JaegerTracer . Settings ( serviceName: " test " , reporter: . custom( reporter) , sampler : ConstantSampler ( samples : false ) )
115145 let tracer = JaegerTracer ( settings: settings, group: eventLoopGroup)
116146
117147 var spans = [ JaegerSpan] ( )
0 commit comments