Merge pull request #13411 from frootloops/expect-crash
diff --git a/stdlib/private/StdlibUnittest/StdlibUnittest.swift.gyb b/stdlib/private/StdlibUnittest/StdlibUnittest.swift.gyb
index f4a028f..93bf6e6 100644
--- a/stdlib/private/StdlibUnittest/StdlibUnittest.swift.gyb
+++ b/stdlib/private/StdlibUnittest/StdlibUnittest.swift.gyb
@@ -542,6 +542,11 @@
_seenExpectCrash = true
}
+public func expectCrash(executing: () -> Void) {
+ expectCrashLater()
+ executing()
+}
+
func _defaultTestSuiteFailedCallback() {
abort()
}
diff --git a/test/stdlib/Optional.swift b/test/stdlib/Optional.swift
index d3e3320..72eeb0c 100644
--- a/test/stdlib/Optional.swift
+++ b/test/stdlib/Optional.swift
@@ -327,13 +327,11 @@
OptionalTests.test("Casting Optional Traps") {
let nx: C? = nil
- expectCrashLater()
- _blackHole(anyToAny(nx, Int.self))
+ expectCrash { _blackHole(anyToAny(nx, Int.self)) }
}
OptionalTests.test("Casting Optional Any Traps") {
let nx: X? = X()
- expectCrashLater()
- _blackHole(anyToAny(nx as Any, Optional<Int>.self))
+ expectCrash { _blackHole(anyToAny(nx as Any, Optional<Int>.self)) }
}
class TestNoString {}
@@ -402,8 +400,7 @@
reason: "assertions are disabled in Release and Unchecked mode"))
.code {
let empty: Int? = nil
- expectCrashLater()
- _blackHole(empty.unsafelyUnwrapped)
+ expectCrash { _blackHole(empty.unsafelyUnwrapped) }
}
runAllTests()