Skip to content

Commit 5e6a212

Browse files
author
Ignacio Bonafonte
authored
Merge pull request #304 from nachoBonafonte/fix-flaky-tests
Try to fix some flaky tests
2 parents fe831f0 + e3de17f commit 5e6a212

File tree

8 files changed

+26
-9
lines changed

8 files changed

+26
-9
lines changed

Sources/Exporters/DatadogExporter/Upload/DatadogEndpoints.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public enum Endpoint {
4949
case .us1: return URL(string: "https://trace.browser-intake-datadoghq.com/" + endpoint)!
5050
case .us3: return URL(string: "https://trace.browser-intake-us3-datadoghq.com/" + endpoint)!
5151
case .us5: return URL(string: "https://trace.browser-intake-us5-datadoghq.com/" + endpoint)!
52-
case .eu1: return URL(string: "https:/public-trace-http-intake.logs.datadoghq.eu/" + endpoint)!
52+
case .eu1: return URL(string: "https://public-trace-http-intake.logs.datadoghq.eu/" + endpoint)!
5353
case .us1_fed: return URL(string: "https://trace.browser-intake-ddog-gov.com/" + endpoint)!
5454
case let .custom(tracesURL: tracesUrl, _, _): return tracesUrl
5555
}

Tests/ExportersTests/DatadogExporter/DatadogExporterTests.swift

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,18 @@ class DatadogExporterTests: XCTestCase {
3434
logsSent = true
3535
expecLog.fulfill()
3636
}))
37+
38+
let sem = DispatchSemaphore(value: 0)
3739
DispatchQueue.global(qos: .default).async {
3840
do {
39-
try server.start()
41+
try server.start(semaphore: sem)
4042
} catch {
4143
XCTFail()
4244
return
4345
}
4446
}
47+
sem.wait()
48+
4549
let instrumentationLibraryName = "SimpleExporter"
4650
let instrumentationLibraryVersion = "semver:0.1.0"
4751

@@ -95,14 +99,17 @@ class DatadogExporterTests: XCTestCase {
9599
metricsSent = true
96100
expecMetrics.fulfill()
97101
}))
102+
103+
let sem = DispatchSemaphore(value: 0)
98104
DispatchQueue.global(qos: .default).async {
99105
do {
100-
try server.start()
106+
try server.start(semaphore: sem)
101107
} catch {
102108
XCTFail()
103109
return
104110
}
105111
}
112+
sem.wait()
106113

107114
let exporterConfiguration = ExporterConfiguration(serviceName: "serviceName",
108115
resource: "resource",

Tests/ExportersTests/DatadogExporter/Helpers/HttpTestServer.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,11 @@ internal class HttpTestServer {
2828
self.config = config
2929
}
3030

31-
public func start() throws {
31+
public func start(semaphore: DispatchSemaphore) throws {
3232
do {
3333
let channel = try serverBootstrap.bind(host: host, port: port).wait()
3434
print("Listening on \(String(describing: channel.localAddress))...")
35+
semaphore.signal()
3536
try channel.closeFuture.wait()
3637
} catch {
3738
throw error

Tests/ExportersTests/DatadogExporter/Logs/LogsExporterTests.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,16 @@ class LogsExporterTests: XCTestCase {
2727
expec.fulfill()
2828
}))
2929

30+
let sem = DispatchSemaphore(value: 0)
3031
DispatchQueue.global(qos: .default).async {
3132
do {
32-
try server.start()
33+
try server.start(semaphore: sem)
3334
} catch {
3435
XCTFail()
3536
return
3637
}
3738
}
39+
sem.wait()
3840

3941
let configuration = ExporterConfiguration(serviceName: "serviceName",
4042
resource: "resource",
@@ -52,6 +54,7 @@ class LogsExporterTests: XCTestCase {
5254

5355
let spanData = createBasicSpanWithEvent()
5456
logsExporter.exportLogs(fromSpan: spanData)
57+
logsExporter.logsStorage.writer.queue.sync {}
5558

5659
waitForExpectations(timeout: 30) { error in
5760
if let error = error {

Tests/ExportersTests/DatadogExporter/Spans/SpansExporterTests.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,16 @@ class SpansExporterTests: XCTestCase {
2626
expec.fulfill()
2727
},
2828
logsReceivedCallback: nil))
29-
29+
let sem = DispatchSemaphore(value: 0)
3030
DispatchQueue.global(qos: .default).async {
3131
do {
32-
try server.start()
32+
try server.start(semaphore: sem)
3333
} catch {
3434
XCTFail()
3535
return
3636
}
3737
}
38+
sem.wait()
3839

3940
let configuration = ExporterConfiguration(serviceName: "serviceName",
4041
resource: "resource",
@@ -52,6 +53,7 @@ class SpansExporterTests: XCTestCase {
5253

5354
let spanData = createBasicSpan()
5455
spansExporter.exportSpan(span: spanData)
56+
spansExporter.tracesStorage.writer.queue.sync {}
5557

5658
waitForExpectations(timeout: 30) { error in
5759
if let error = error {

Tests/ExportersTests/DatadogExporter/Upload/DataUploadWorkerTests.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,7 @@ class DataUploadWorkerTests: XCTestCase {
260260
writer.write(value: ["k1": "v1"])
261261
writer.write(value: ["k2": "v2"])
262262
writer.write(value: ["k3": "v3"])
263+
writer.queue.sync {}
263264

264265
// When
265266
_ = worker.flush()

Tests/InstrumentationTests/URLSessionTests/URLSessionInstrumentationTests.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,14 +79,16 @@ class URLSessionInstrumentationTests: XCTestCase {
7979
static let server = HttpTestServer(url: URL(string: "http://localhost:33333"), config: nil)
8080

8181
override class func setUp() {
82+
let sem = DispatchSemaphore(value: 0)
8283
DispatchQueue.global(qos: .default).async {
8384
do {
84-
try server.start()
85+
try server.start(semaphore: sem)
8586
} catch {
8687
XCTFail()
8788
return
8889
}
8990
}
91+
sem.wait()
9092
instrumentation = URLSessionInstrumentation(configuration: config)
9193
}
9294

Tests/InstrumentationTests/URLSessionTests/Utils/HttpTestServer.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,11 @@ internal class HttpTestServer {
2727
self.config = config
2828
}
2929

30-
public func start() throws {
30+
public func start(semaphore: DispatchSemaphore) throws {
3131
do {
3232
let channel = try serverBootstrap.bind(host: host, port: port).wait()
3333
print("Listening on \(String(describing: channel.localAddress))...")
34+
semaphore.signal()
3435
try channel.closeFuture.wait()
3536
} catch {
3637
throw error

0 commit comments

Comments
 (0)