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.
diff --git a/Tests/Functional/Asynchronous/Predicates/Expectations/main.swift b/Tests/Functional/Asynchronous/Predicates/Expectations/main.swift
index f8459fa..6210acc 100644
--- a/Tests/Functional/Asynchronous/Predicates/Expectations/main.swift
+++ b/Tests/Functional/Asynchronous/Predicates/Expectations/main.swift
@@ -1,7 +1,6 @@
// RUN: %{swiftc} %s -o %T/Asynchronous-Predicates
// RUN: %T/Asynchronous-Predicates > %t || true
-// Disabled due to: https://bugs.swift.org/browse/SR-2332
-// xxx: %{xctest_checker} %t %s
+// RUN: %{xctest_checker} %t %s
#if os(Linux) || os(FreeBSD)
import XCTest
@@ -38,29 +37,26 @@
// CHECK: Test Case 'PredicateExpectationsTestCase.test_delayedTruePredicateAndObject_passes' started at \d+:\d+:\d+\.\d+
// CHECK: Test Case 'PredicateExpectationsTestCase.test_delayedTruePredicateAndObject_passes' passed \(\d+\.\d+ seconds\).
func test_delayedTruePredicateAndObject_passes() {
- let halfSecLaterDate = NSDate(timeIntervalSinceNow: 0.01)
- let predicate = Predicate(block: {
- evaluatedObject, bindings in
- if let evaluatedDate = evaluatedObject as? NSDate {
- return evaluatedDate.compare(Date()) == ComparisonResult.orderedAscending
- }
- return false
+ var didEvaluate = false
+ let predicate = Predicate(block: { evaluatedObject, bindings in
+ defer { didEvaluate = true }
+ return didEvaluate
})
- expectation(for: predicate, evaluatedWith: halfSecLaterDate)
+ expectation(for: predicate, evaluatedWith: NSObject())
waitForExpectations(timeout: 0.1)
}
// CHECK: Test Case 'PredicateExpectationsTestCase.test_immediatelyTrueDelayedFalsePredicateAndObject_passes' started at \d+:\d+:\d+\.\d+
// CHECK: Test Case 'PredicateExpectationsTestCase.test_immediatelyTrueDelayedFalsePredicateAndObject_passes' passed \(\d+\.\d+ seconds\).
func test_immediatelyTrueDelayedFalsePredicateAndObject_passes() {
- let halfSecLaterDate = NSDate(timeIntervalSinceNow: 0.01)
+ var didEvaluate = false
let predicate = Predicate(block: { evaluatedObject, bindings in
- if let evaluatedDate = evaluatedObject as? NSDate {
- return evaluatedDate.compare(Date()) == ComparisonResult.orderedDescending
- }
- return false
+ defer { didEvaluate = true }
+ return !didEvaluate
})
- expectation(for: predicate, evaluatedWith: halfSecLaterDate)
+ expectation(for: predicate, evaluatedWith: NSObject())
+ XCTAssertTrue(didEvaluate)
+
waitForExpectations(timeout: 0.1)
}