| // RUN: %target-run-simple-swift 2>&1 | %FileCheck %s |
| // REQUIRES: executable_test |
| |
| import StdlibUnittest |
| #if canImport(Darwin) |
| import Darwin |
| #elseif canImport(Glibc) |
| import Glibc |
| #elseif os(Windows) |
| import MSVCRT |
| #else |
| #error("Unsupported platform") |
| #endif |
| |
| _setTestSuiteFailedCallback() { print("abort()") } |
| |
| // |
| // Test that harness aborts when a test crashes if a child process exits with a |
| // non-zero code after all tests have finished running. |
| // |
| |
| var TestSuiteChildExits = TestSuite("TestSuiteChildExits") |
| |
| TestSuiteChildExits.test("passes") { |
| atexit { |
| _exit(1) |
| } |
| } |
| |
| // CHECK: [ RUN ] TestSuiteChildExits.passes |
| // CHECK: [ OK ] TestSuiteChildExits.passes |
| // CHECK: TestSuiteChildExits: All tests passed |
| // CHECK: Abnormal child process termination: Exit(1). |
| // CHECK: The child process failed during shutdown, aborting. |
| // CHECK: abort() |
| |
| runAllTests() |
| |