File tree Expand file tree Collapse file tree 1 file changed +10
-4
lines changed
Tests/ComposableArchitectureTests Expand file tree Collapse file tree 1 file changed +10
-4
lines changed Original file line number Diff line number Diff line change @@ -191,14 +191,15 @@ final class EffectCancellationTests: XCTestCase {
191
191
DispatchQueue . global ( qos: . userInteractive) ,
192
192
DispatchQueue . global ( qos: . utility) ,
193
193
]
194
+ let ids = ( 1 ... 10 ) . map { _ in UUID ( ) }
194
195
195
196
let effect = Effect . merge (
196
197
// Original upper bound was 1000, but it was triggering EXC_BAD_ACCESS crashes...
197
198
// Enabling ThreadSanitizer reveals data races in RAS internals, more specifically
198
199
// `TransformerCore.start` (accessing `hasDeliveredTerminalEvent` var), which can
199
200
// be the cause?
200
201
( 1 ... 300 ) . map { idx -> Effect < Int , Never > in
201
- let id = idx % 10
202
+ let id = ids [ idx % 10 ]
202
203
203
204
return Effect . merge (
204
205
Effect ( value: idx)
@@ -226,7 +227,12 @@ final class EffectCancellationTests: XCTestCase {
226
227
. start ( )
227
228
self . wait ( for: [ expectation] , timeout: 999 )
228
229
229
- XCTAssertNoDifference ( [ : ] , cancellationCancellables)
230
+ for id in ids {
231
+ XCTAssertNil (
232
+ cancellationCancellables [ CancelToken ( id: id) ] ,
233
+ " cancellationCancellables should not contain id \( id) "
234
+ )
235
+ }
230
236
}
231
237
232
238
func testNestedCancels( ) {
@@ -237,8 +243,8 @@ final class EffectCancellationTests: XCTestCase {
237
243
observer. sendCompleted ( )
238
244
}
239
245
}
240
- . eraseToEffect ( )
241
- . cancellable ( id: 1 )
246
+ . eraseToEffect ( )
247
+ . cancellable ( id: 1 )
242
248
243
249
for _ in 1 ... 1_000 {
244
250
effect = effect. cancellable ( id: id)
You can’t perform that action at this time.
0 commit comments