|
1 | 1 | // RUN: %{swiftc} %s -o %T/Asynchronous-Predicates
|
2 | 2 | // RUN: %T/Asynchronous-Predicates > %t || true
|
3 |
| -// Disabled due to: https://bugs.swift.org/browse/SR-2332 |
4 |
| -// xxx: %{xctest_checker} %t %s |
| 3 | +// RUN: %{xctest_checker} %t %s |
5 | 4 |
|
6 | 5 | #if os(Linux) || os(FreeBSD)
|
7 | 6 | import XCTest
|
@@ -38,29 +37,26 @@ class PredicateExpectationsTestCase: XCTestCase {
|
38 | 37 | // CHECK: Test Case 'PredicateExpectationsTestCase.test_delayedTruePredicateAndObject_passes' started at \d+:\d+:\d+\.\d+
|
39 | 38 | // CHECK: Test Case 'PredicateExpectationsTestCase.test_delayedTruePredicateAndObject_passes' passed \(\d+\.\d+ seconds\).
|
40 | 39 | func test_delayedTruePredicateAndObject_passes() {
|
41 |
| - let halfSecLaterDate = NSDate(timeIntervalSinceNow: 0.01) |
42 |
| - let predicate = Predicate(block: { |
43 |
| - evaluatedObject, bindings in |
44 |
| - if let evaluatedDate = evaluatedObject as? NSDate { |
45 |
| - return evaluatedDate.compare(Date()) == ComparisonResult.orderedAscending |
46 |
| - } |
47 |
| - return false |
| 40 | + var didEvaluate = false |
| 41 | + let predicate = Predicate(block: { evaluatedObject, bindings in |
| 42 | + defer { didEvaluate = true } |
| 43 | + return didEvaluate |
48 | 44 | })
|
49 |
| - expectation(for: predicate, evaluatedWith: halfSecLaterDate) |
| 45 | + expectation(for: predicate, evaluatedWith: NSObject()) |
50 | 46 | waitForExpectations(timeout: 0.1)
|
51 | 47 | }
|
52 | 48 |
|
53 | 49 | // CHECK: Test Case 'PredicateExpectationsTestCase.test_immediatelyTrueDelayedFalsePredicateAndObject_passes' started at \d+:\d+:\d+\.\d+
|
54 | 50 | // CHECK: Test Case 'PredicateExpectationsTestCase.test_immediatelyTrueDelayedFalsePredicateAndObject_passes' passed \(\d+\.\d+ seconds\).
|
55 | 51 | func test_immediatelyTrueDelayedFalsePredicateAndObject_passes() {
|
56 |
| - let halfSecLaterDate = NSDate(timeIntervalSinceNow: 0.01) |
| 52 | + var didEvaluate = false |
57 | 53 | let predicate = Predicate(block: { evaluatedObject, bindings in
|
58 |
| - if let evaluatedDate = evaluatedObject as? NSDate { |
59 |
| - return evaluatedDate.compare(Date()) == ComparisonResult.orderedDescending |
60 |
| - } |
61 |
| - return false |
| 54 | + defer { didEvaluate = true } |
| 55 | + return !didEvaluate |
62 | 56 | })
|
63 |
| - expectation(for: predicate, evaluatedWith: halfSecLaterDate) |
| 57 | + expectation(for: predicate, evaluatedWith: NSObject()) |
| 58 | + XCTAssertTrue(didEvaluate) |
| 59 | + |
64 | 60 | waitForExpectations(timeout: 0.1)
|
65 | 61 | }
|
66 | 62 |
|
|
0 commit comments