-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
Labels: design, critical, execution-model
Problem
crash_point() kills the entire process via SIGKILL.
Code reference:
https://github.com/siphonite/first/blob/main/src/rt.rs#L171
unsafe {
libc::kill(libc::getpid(), libc::SIGKILL);
}Under cargo test, multiple tests typically share the same process. A single crash aborts all running tests.
Impact
- All other tests are terminated immediately: If one test hits a crash point, every other test thread in the same process dies instantly.
- Violates Rust test isolation expectations: Users expect tests to be independent.
- Requires undocumented invocation constraints: Users must know to run with process isolation.
Acceptance Criteria
One of the following must be true:
- FIRST enforces single-test-per-process execution.
- FIRST detects
test-threads > 1and fails fast with a clear error. - FIRST explicitly documents and enforces required runners (e.g.
--test-threads=1,nextest).
Reactions are currently unavailable