swiftlang / swift-corelibs-xctest

The XCTest Project, A Swift core library for providing unit test support
swift.org
Apache License 2.0
1.15k stars 265 forks source link

[SR-1872] Use runloop source in XCTestCase.waitForExpectations(withTimeout:file:line:handler:) #384

Open ec882e32-f2b6-4d2a-849c-98d6c7df0cfb opened 8 years ago

ec882e32-f2b6-4d2a-849c-98d6c7df0cfb commented 8 years ago
Previous ID SR-1872
Radar None
Original Reporter @modocache
Type Improvement
Status In Progress
Resolution
Additional Detail from JIRA | | | |------------------|-----------------| |Votes | 0 | |Component/s | XCTest | |Labels | Improvement, StarterBug | |Assignee | pranavShenoy95 (JIRA) | |Priority | Medium | md5: 2f80d90c1c1340fe3c193450551b82f7

Issue Description:

See this FIXME:

"Instead of polling the expectations to check whether they've been fulfilled, it would be more efficient to use a runloop source that can be signaled to wake up when an expectation is fulfilled."

Prerequisites:

Helpful skills:
Familiarity with Swift, XCTest, and Foundation's NSRunLoop.

Starting point:

  1. Build Swift from source by following the instructions in the Swift README.

  2. Build and run the swift-corelibs-xctest tests by following the instructions in the swift-corelibs-xctest README. Confirm that all the tests pass.

  3. Modify the source code in XCTestCase+Asynchronous.swift to use a runloop source. The Apple documentation on run loops might be helpful.

  4. Run the swift-corelibs-xctest tests again. Confirm they all still pass. If they do, send a pull request!

belkadan commented 5 years ago

Resetting assignee on all Starter Bugs not modified since 2018.

swift-ci commented 5 years ago

Comment by Kazuhiro Hayashi (JIRA)

Has someone already fixed this issue? I want to try. 🙂

swift-ci commented 5 years ago

Comment by Kazuhiro Hayashi (JIRA)

This issue has been fixed by the following commit?

https://github.com/apple/swift-corelibs-xctest/commit/ffa81a2067500c4641a1043732590ce89218ddc9#diff-3bcbfe3df724d74e85b7c115710eaa7aR370

belkadan commented 5 years ago

cc @stmontgomery

stmontgomery commented 5 years ago

kazuhiro4949 (JIRA User) No I don't believe that PR addressed this, so it's still outstanding. Feel free to submit a PR!

swift-ci commented 4 years ago

Comment by pranav (JIRA)

@stmontgomery @belkadan @modocache Could you please help me in merging the pull request for the task? This pull request has been blocked for a while due to a dependency in Foundation framework (in wrappers for CFRunloopContext). I have root caused the issue (crash) but not sure about the best solution.

Please help me in merging this pull request. Thanks.

Link to pull request: https://github.com/apple/swift-corelibs-xctest/pull/304

cc: @millenomi @compnerd

grynspan commented 9 months ago

Incorrectly closed the issue as wontfix—forgot swift-corelibs-foundation had added SPI to allow implementing something here. My bad.