Skip to content

Commit 6d744ba

Browse files
committed
Workaround for assertForOverFulfill not working on Linux
1 parent acdd861 commit 6d744ba

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

Tests/SourceKitTests/CrashRecoveryTests.swift

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -221,21 +221,34 @@ final class CrashRecoveryTests: XCTestCase {
221221

222222
let clangdCrashed = self.expectation(description: "clangd crashed")
223223
clangdCrashed.assertForOverFulfill = false
224+
// assertForOverFulfill is not working on Linux (SR-12575). Manually keep track if we have already called fulfill on the expectation
225+
var clangdCrashedFulfilled = false
226+
224227
let clangdRestartedFirstTime = self.expectation(description: "clangd restarted for the first time")
228+
225229
let clangdRestartedSecondTime = self.expectation(description: "clangd restarted for the second time")
226230
clangdRestartedSecondTime.assertForOverFulfill = false
231+
// assertForOverFulfill is not working on Linux (SR-12575). Manually keep track if we have already called fulfill on the expectation
232+
var clangdRestartedSecondTimeFulfilled = false
233+
227234
var clangdHasRestartedFirstTime = false
228235

229236
clangdServer.addStateChangeHandler { (oldState, newState) in
230237
switch newState {
231238
case .connectionInterrupted:
232-
clangdCrashed.fulfill()
239+
if !clangdCrashedFulfilled {
240+
clangdCrashed.fulfill()
241+
clangdCrashedFulfilled = true
242+
}
233243
case .connected:
234244
if !clangdHasRestartedFirstTime {
235245
clangdRestartedFirstTime.fulfill()
236246
clangdHasRestartedFirstTime = true
237247
} else {
238-
clangdRestartedSecondTime.fulfill()
248+
if !clangdRestartedSecondTimeFulfilled {
249+
clangdRestartedSecondTime.fulfill()
250+
clangdRestartedSecondTimeFulfilled = true
251+
}
239252
}
240253
default:
241254
break

0 commit comments

Comments
 (0)