Skip to content

Commit e5a81df

Browse files
committed
design: state where the payload-bin rule is actually covered
1 parent e9f448d commit e5a81df

1 file changed

Lines changed: 19 additions & 5 deletions

File tree

.agents/docs/2026-09-02-runner-beyond-baremetal-design.md

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -708,11 +708,25 @@ the bounded launcher reports a spawn failure. Section 1 shows these are one
708708
defect seen from two sides; a test that covers only the untimed path leaves
709709
the doubled spawn in place.
710710

711-
**What is not exercised.** Provisioning `qemu-user-aarch64` through
712-
`[xlings] deps` is not an e2e criterion: it needs network, an x86_64 host,
713-
and a registry, and the provisioning pass has its own coverage from #531. The
714-
payload-`bin/` rule is exercised with a locally staged package directory
715-
instead (third row).
711+
**What the e2e does not exercise, and what does.** Provisioning
712+
`qemu-user-aarch64` through `[xlings] deps` is not an e2e criterion: it needs
713+
network, an x86_64 host and a registry, and the provisioning pass has its own
714+
coverage from #531. Neither is the payload-`bin/` rule, and the third row of
715+
the table above is therefore not an e2e row. Staging a package into the store
716+
to obtain one was considered and rejected: the store is shared with the
717+
machine's real payloads, and a declared package that is not installable is a
718+
hard build error, so a synthetic entry cannot be declared without the
719+
provisioning pass refusing it first.
720+
721+
The rule is covered on two levels instead. `locate`'s ordering — a payload
722+
`bin/` before `PATH`, a non-executable file skipped, every directory recorded
723+
— is asserted directly in `tests/unit/test_runner_lookup.cpp`. The wiring from
724+
`[xlings] deps` through `BuildContext::xlingsDepBinDirs` to that call is
725+
asserted by the sandbox verification (section 13), where `qemu-aarch64-static`
726+
resolves through the declared payload while the same bare name on `PATH` is an
727+
xvm shim that answers for the current SubOS. That verification is the only
728+
place all three parts are present at once, and it is a required step of the
729+
release rather than an optional one.
716730

717731
## 12. Implementation surface
718732

0 commit comments

Comments
 (0)