Skip to content

CRITICAL: crash_point() SIGKILL terminates entire test harness #30

@siphonite

Description

@siphonite

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 > 1 and fails fast with a clear error.
  • FIRST explicitly documents and enforces required runners (e.g. --test-threads=1, nextest).

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingdesign

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions