Pre15 Stage0 Execution Evidence
Scope
B01 establishes the only Pre15 runner interface and the evidence contract used
by later gates, builds, directed tests, and smoke runs. It does not modify
src/**, run the full feature suite, or convert host parser results into KLD
runtime claims.
Entrypoints
timeout -k 10 240 tests/pre15/run-host.sh CASE
timeout -k 30 1200 tests/pre15/run-build.sh zstdio0
timeout -k 30 1200 tests/pre15/run-build.sh zstdio1
timeout -k 30 1200 tests/pre15/run-qemu.sh CASE
timeout -k 30 1500 tests/pre15/run-smoke.sh final-four-codec
Cases are discovered as exact files under tests/pre15/cases/; no shared case
registry or historical result runner is consulted. run-build.sh reports a
Linux invocation as INFRA_BLOCKED because build.sh requires a native
FreeBSD host.
Evidence
Set PRE15_EVIDENCE_ROOT to a new evidence parent. Every invocation creates a
unique run directory and never overwrites an earlier run. manifest.json
conforms to tests/pre15/EVIDENCE-SCHEMA.json and records exact argv, DUT and
source identities, worktree diff hash, fixture/module hashes, timestamps,
deadline, exit code, target marker, status, cleanup, and raw-output paths.
The only case statuses are PASS, DUT_FAIL, RUNNER_FAIL,
INFRA_BLOCKED, STOP, and NOT_RUN. A nonzero guest command without a target
marker is not a DUT failure. Cleanup failure always changes the run to
RUNNER_FAIL.
Ownership
The runner records each owned process, path, forwarded port, SSH ControlMaster, guest mount, md unit, loaded EROFS KLD, and base image before use. Cleanup runs in reverse order and refuses to remove paths outside the current run directory. QEMU always writes to a fresh overlay. The base image is read-only input for the runner and its SHA256 must remain unchanged.
Mount, md, and KLD cleanup applies only to resources explicitly registered by the current run. Kernel ZSTDIO is a kernel option, not an unloadable dependency.
B01 Controls
B01-runner-selftest: known-good, target-marked DUT mismatch, pre-target command failure, SSH failure, QEMU early exit, timeout, owned PID cleanup, and deliberate cleanup-boundary failure.B01-g3-equivalence: verifies the two archived script identities, compares their source/artifact inventories with the stable helper, and repeats stable generation.TC162-xattr-legacy: verifies checksum-valid legacy primary, explicit plain, packed, and metabox prefix carriers plus exact single-fieldEINTEGRITYnegatives.
The authoritative B01 and initial gate verdicts are recorded under
planning/pre15/evidence/ after execution from a committed B01 tree.