Skip to content

Commit db001b7

Browse files
committed
RUM-7999 Fix integration unit tests
1 parent 65cc1a8 commit db001b7

File tree

1 file changed

+26
-60
lines changed

1 file changed

+26
-60
lines changed

Datadog/IntegrationUnitTests/Trace/HeadBasedSamplingTests.swift

Lines changed: 26 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,11 @@ class HeadBasedSamplingTests: XCTestCase {
5353
parent.finish()
5454

5555
let spans = core.waitAndReturnSpanEvents()
56-
XCTAssertEqual(spans.count, 3, "It must send all spans")
5756

58-
let allKept = spans.filter({ $0.isKept }).count == 3
59-
let allDropped = spans.filter({ !$0.isKept }).count == 3
60-
XCTAssertTrue(allKept || allDropped, "All spans must be either kept or dropped")
57+
guard spans.isEmpty else {
58+
XCTAssertEqual(spans.filter({ $0.isKept }).count, 3, "All spans must be either kept or dropped")
59+
return
60+
}
6161
}
6262

6363
func testSamplingLocalTraceWithImplicitParent() throws {
@@ -82,11 +82,11 @@ class HeadBasedSamplingTests: XCTestCase {
8282
parent.finish()
8383

8484
let spans = core.waitAndReturnSpanEvents()
85-
XCTAssertEqual(spans.count, 3, "It must send all spans")
8685

87-
let allKept = spans.filter({ $0.isKept }).count == 3
88-
let allDropped = spans.filter({ !$0.isKept }).count == 3
89-
XCTAssertTrue(allKept || allDropped, "All spans must be either kept or dropped")
86+
guard spans.isEmpty else {
87+
XCTAssertEqual(spans.filter({ $0.isKept }).count, 3, "All spans must be either kept or dropped")
88+
return
89+
}
9090
}
9191

9292
// MARK: - Distributed Tracing (through network instrumentation API)
@@ -154,18 +154,10 @@ class HeadBasedSamplingTests: XCTestCase {
154154
let request = try sendURLSessionRequest(to: "https://foo.com/request", using: InstrumentedSessionDelegate())
155155

156156
// Then
157-
let span = try XCTUnwrap(core.waitAndReturnSpanEvents().first, "It should send span event")
158-
XCTAssertEqual(span.operationName, "urlsession.request")
159-
XCTAssertEqual(span.samplingRate, 0, "Span must use distributed trace sample rate")
160-
XCTAssertFalse(span.isKept, "Span must be dropped")
161-
162-
// Then
163-
let expectedTraceIDField = span.traceID.toString(representation: .decimal)
164-
let expectedSpanIDField = span.spanID.toString(representation: .decimal)
165-
let expectedTagsField = "_dd.p.tid=\(span.traceID.idHiHex)"
166-
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.traceIDField), expectedTraceIDField)
167-
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.parentSpanIDField), expectedSpanIDField)
168-
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.tagsField), expectedTagsField)
157+
XCTAssertNil(core.waitAndReturnSpanEvents().first, "It should not send span event")
158+
XCTAssertNotNil(request.value(forHTTPHeaderField: TracingHTTPHeaders.traceIDField))
159+
XCTAssertNotNil(request.value(forHTTPHeaderField: TracingHTTPHeaders.parentSpanIDField))
160+
XCTAssertNotNil(request.value(forHTTPHeaderField: TracingHTTPHeaders.tagsField))
169161
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.samplingPriorityField), "0")
170162
}
171163

@@ -245,23 +237,13 @@ class HeadBasedSamplingTests: XCTestCase {
245237

246238
// Then
247239
let spanEvents = core.waitAndReturnSpanEvents()
248-
let activeSpan = try XCTUnwrap(spanEvents.first(where: { $0.operationName == "active.span" }))
249-
let urlsessionSpan = try XCTUnwrap(spanEvents.first(where: { $0.operationName == "urlsession.request" }))
250-
251-
XCTAssertEqual(activeSpan.samplingRate, 0, "Span must use local trace sample rate")
252-
XCTAssertFalse(activeSpan.isKept, "Span must not be sampled")
253-
XCTAssertEqual(urlsessionSpan.samplingRate, 0, "Span must use local trace sample rate")
254-
XCTAssertFalse(urlsessionSpan.isKept, "Span must not be sampled")
255-
XCTAssertEqual(urlsessionSpan.traceID, activeSpan.traceID)
256-
XCTAssertEqual(urlsessionSpan.parentID, activeSpan.spanID)
240+
XCTAssertNil(spanEvents.first(where: { $0.operationName == "active.span" }))
241+
XCTAssertNil(spanEvents.first(where: { $0.operationName == "urlsession.request" }))
257242

258243
// Then
259-
let expectedTraceIDField = activeSpan.traceID.toString(representation: .decimal)
260-
let expectedSpanIDField = urlsessionSpan.spanID.toString(representation: .decimal)
261-
let expectedTagsField = "_dd.p.tid=\(activeSpan.traceID.idHiHex)"
262-
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.traceIDField), expectedTraceIDField)
263-
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.parentSpanIDField), expectedSpanIDField)
264-
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.tagsField), expectedTagsField)
244+
XCTAssertNotNil(request.value(forHTTPHeaderField: TracingHTTPHeaders.traceIDField))
245+
XCTAssertNotNil(request.value(forHTTPHeaderField: TracingHTTPHeaders.parentSpanIDField))
246+
XCTAssertNotNil(request.value(forHTTPHeaderField: TracingHTTPHeaders.tagsField))
265247
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.samplingPriorityField), "0")
266248
}
267249

@@ -329,18 +311,12 @@ class HeadBasedSamplingTests: XCTestCase {
329311
span.finish()
330312

331313
// Then
332-
let networkSpan = try XCTUnwrap(core.waitAndReturnSpanEvents().first, "It should send span event")
333-
XCTAssertEqual(networkSpan.operationName, "network.span")
334-
XCTAssertEqual(networkSpan.samplingRate, 0, "Span must use local trace sample rate")
335-
XCTAssertFalse(networkSpan.isKept, "Span must be dropped")
314+
XCTAssertNil(core.waitAndReturnSpanEvents().first, "It should not send span event")
336315

337316
// Then
338-
let expectedTraceIDField = networkSpan.traceID.toString(representation: .decimal)
339-
let expectedSpanIDField = networkSpan.spanID.toString(representation: .decimal)
340-
let expectedTagsField = "_dd.p.tid=\(networkSpan.traceID.idHiHex)"
341-
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.traceIDField), expectedTraceIDField)
342-
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.parentSpanIDField), expectedSpanIDField)
343-
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.tagsField), expectedTagsField)
317+
XCTAssertNotNil(request.value(forHTTPHeaderField: TracingHTTPHeaders.traceIDField))
318+
XCTAssertNotNil(request.value(forHTTPHeaderField: TracingHTTPHeaders.parentSpanIDField))
319+
XCTAssertNotNil(request.value(forHTTPHeaderField: TracingHTTPHeaders.tagsField))
344320
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.samplingPriorityField), "0")
345321
}
346322

@@ -420,23 +396,13 @@ class HeadBasedSamplingTests: XCTestCase {
420396

421397
// Then
422398
let spanEvents = core.waitAndReturnSpanEvents()
423-
let activeSpan = try XCTUnwrap(spanEvents.first(where: { $0.operationName == "active.span" }))
424-
let networkSpan = try XCTUnwrap(spanEvents.first(where: { $0.operationName == "network.span" }))
425-
426-
XCTAssertEqual(activeSpan.samplingRate, 0, "Span must use local trace sample rate")
427-
XCTAssertFalse(activeSpan.isKept, "Span must be dropped")
428-
XCTAssertEqual(networkSpan.samplingRate, 0, "Span must use local trace sample rate")
429-
XCTAssertFalse(networkSpan.isKept, "Span must be dropped")
430-
XCTAssertEqual(networkSpan.traceID, activeSpan.traceID)
431-
XCTAssertEqual(networkSpan.parentID, activeSpan.spanID)
399+
XCTAssertNil(spanEvents.first(where: { $0.operationName == "active.span" }))
400+
XCTAssertNil(spanEvents.first(where: { $0.operationName == "network.span" }))
432401

433402
// Then
434-
let expectedTraceIDField = activeSpan.traceID.toString(representation: .decimal)
435-
let expectedSpanIDField = networkSpan.spanID.toString(representation: .decimal)
436-
let expectedTagsField = "_dd.p.tid=\(activeSpan.traceID.idHiHex)"
437-
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.traceIDField), expectedTraceIDField)
438-
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.parentSpanIDField), expectedSpanIDField)
439-
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.tagsField), expectedTagsField)
403+
XCTAssertNotNil(request.value(forHTTPHeaderField: TracingHTTPHeaders.traceIDField))
404+
XCTAssertNotNil(request.value(forHTTPHeaderField: TracingHTTPHeaders.parentSpanIDField))
405+
XCTAssertNotNil(request.value(forHTTPHeaderField: TracingHTTPHeaders.tagsField))
440406
XCTAssertEqual(request.value(forHTTPHeaderField: TracingHTTPHeaders.samplingPriorityField), "0")
441407
}
442408

0 commit comments

Comments
 (0)