Skip to content

Commit c81750d

Browse files
Register test observer in main queue (#834)
1 parent 7083a44 commit c81750d

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

Sources/SnapshotTesting/AssertSnapshot.swift

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -371,18 +371,24 @@ func sanitizePathComponent(_ string: String) -> String {
371371
// We need to clean counter between tests executions in order to support test-iterations.
372372
private class CleanCounterBetweenTestCases: NSObject, XCTestObservation {
373373
private static var registered = false
374-
private static var registerQueue = DispatchQueue(
375-
label: "co.pointfree.SnapshotTesting.testObserver")
376374

377375
static func registerIfNeeded() {
378-
registerQueue.sync {
379-
if !registered {
380-
registered = true
381-
XCTestObservationCenter.shared.addTestObserver(CleanCounterBetweenTestCases())
376+
if Thread.isMainThread {
377+
doRegisterIfNeeded()
378+
} else {
379+
DispatchQueue.main.sync {
380+
doRegisterIfNeeded()
382381
}
383382
}
384383
}
385384

385+
private static func doRegisterIfNeeded() {
386+
if !registered {
387+
registered = true
388+
XCTestObservationCenter.shared.addTestObserver(CleanCounterBetweenTestCases())
389+
}
390+
}
391+
386392
func testCaseDidFinish(_ testCase: XCTestCase) {
387393
counterQueue.sync {
388394
counterMap = [:]

0 commit comments

Comments
 (0)