Summary
When io_uring is unavailable on a runner (for example, a seccomp profile that refuses io_uring_setup), the adaptive job's main test step goes green without testing adaptive switching.
- 16
./adaptive tests skip, and go test reports ok, even with CELERIS_REQUIRE_UPSWITCH=1, because those skips are not routed through the require check.
TestFlapConnsPerRing's own skip (s0Bind, when !IOUringTier.Available()) also ignores that variable.
Today the only thing that turns such a runner red is the T4 tally that PR #681 adds (it requires exactly 1 PASS and no T4 SKIP line).
How it was found
The T-SECCOMP interlock arm of PR #681's round 2 ran the adaptive job's race step verbatim, as GitHub does, under a seccomp profile that refuses io_uring_setup. The log shows 16 top-level --- SKIP lines and ok github.com/goceleris/celeris/adaptive (evidence: evidence/celeris-657/impl/pr2-r2/fix/interlock/48dfe1a/logs/IL-T-SECCOMP.log).
Proposed
- Route every io_uring-availability skip in
./adaptive through one helper that fails when CELERIS_REQUIRE_UPSWITCH=1 (or a dedicated require variable) is set, the way skipOrFail656 does for engine/iouring.
- Give the adaptive job a PASS-count interlock with SKIP forbidden, proven both ways from the verbatim run block.
Other behaviour stays the same: local runs without io_uring still skip.
Summary
When io_uring is unavailable on a runner (for example, a seccomp profile that refuses
io_uring_setup), the adaptive job's main test step goes green without testing adaptive switching../adaptivetests skip, andgo testreportsok, even withCELERIS_REQUIRE_UPSWITCH=1, because those skips are not routed through the require check.TestFlapConnsPerRing's own skip (s0Bind, when!IOUringTier.Available()) also ignores that variable.Today the only thing that turns such a runner red is the T4 tally that PR #681 adds (it requires exactly 1 PASS and no T4 SKIP line).
How it was found
The T-SECCOMP interlock arm of PR #681's round 2 ran the adaptive job's race step verbatim, as GitHub does, under a seccomp profile that refuses
io_uring_setup. The log shows 16 top-level--- SKIPlines andok github.com/goceleris/celeris/adaptive(evidence:evidence/celeris-657/impl/pr2-r2/fix/interlock/48dfe1a/logs/IL-T-SECCOMP.log).Proposed
./adaptivethrough one helper that fails whenCELERIS_REQUIRE_UPSWITCH=1(or a dedicated require variable) is set, the wayskipOrFail656does forengine/iouring.Other behaviour stays the same: local runs without io_uring still skip.