Skip to content

Commit 4400b02

Browse files
authored
Merge pull request #157 from mike-ferris-apple/swift-3.0-branch
Cherry-picked fix for SR-2332 from master into swift-3.0-branch.
2 parents 9cee817 + 6edc24a commit 4400b02

File tree

1 file changed

+12
-16
lines changed
  • Tests/Functional/Asynchronous/Predicates/Expectations

1 file changed

+12
-16
lines changed

Tests/Functional/Asynchronous/Predicates/Expectations/main.swift

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
// RUN: %{swiftc} %s -o %T/Asynchronous-Predicates
22
// 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
54

65
#if os(Linux) || os(FreeBSD)
76
import XCTest
@@ -38,29 +37,26 @@ class PredicateExpectationsTestCase: XCTestCase {
3837
// CHECK: Test Case 'PredicateExpectationsTestCase.test_delayedTruePredicateAndObject_passes' started at \d+:\d+:\d+\.\d+
3938
// CHECK: Test Case 'PredicateExpectationsTestCase.test_delayedTruePredicateAndObject_passes' passed \(\d+\.\d+ seconds\).
4039
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
4844
})
49-
expectation(for: predicate, evaluatedWith: halfSecLaterDate)
45+
expectation(for: predicate, evaluatedWith: NSObject())
5046
waitForExpectations(timeout: 0.1)
5147
}
5248

5349
// CHECK: Test Case 'PredicateExpectationsTestCase.test_immediatelyTrueDelayedFalsePredicateAndObject_passes' started at \d+:\d+:\d+\.\d+
5450
// CHECK: Test Case 'PredicateExpectationsTestCase.test_immediatelyTrueDelayedFalsePredicateAndObject_passes' passed \(\d+\.\d+ seconds\).
5551
func test_immediatelyTrueDelayedFalsePredicateAndObject_passes() {
56-
let halfSecLaterDate = NSDate(timeIntervalSinceNow: 0.01)
52+
var didEvaluate = false
5753
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
6256
})
63-
expectation(for: predicate, evaluatedWith: halfSecLaterDate)
57+
expectation(for: predicate, evaluatedWith: NSObject())
58+
XCTAssertTrue(didEvaluate)
59+
6460
waitForExpectations(timeout: 0.1)
6561
}
6662

0 commit comments

Comments
 (0)