Use XCTest's async waiting functionality instead of a hand-rolled method #309
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The tests for
NSNotificationQueue
predate the introduction of swift-corelibs-xctest's own API for asynchronous testing, and instead use a private method in the test case for spinning the run loop and waiting for an event to have occurred. It would be nice to migrate to the built-in XCTest functionality for this.I have done my best to stress-test the test suite on my machine in both OSX and Linux environments and haven't encountered a single failure, however I do still have a slight concern that this could re-introduce test flakiness because it remove the explicit locking added by @phausler in 735d33b. If it turns out to be problematic, I would consider it to be a shortcoming in XCTest, though, and would like to see it fixed there.