ci: every wai-rs test is run by a job or listed with its reason, none can run empty, and wai_prov runs #240
Loading…
Reference in a new issue
No description provided.
Delete branch "ci/tests-are-run"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Every integration test of
wai-rsis run by a CI job or listed with the reason none runs it, no feature-gated test can run empty, and the provenance tool is built and run.Why
The conformance workflows name the
wai-rstests they run, one--test NAMEat a time. Two failure modes followed, both silent:world_model,world_replayandsemantic_path.#![cfg(feature = "x")], named in a step withoutx, compiles to a binary with no tests that reportsok. 49 such files had norequired-features, so nothing stopped that.What changes
scripts/check-tests-in-ci.py(standard library only), with a self-test, in a new workflowtests-in-ci.ymlthat has nopaths:filter and takes seconds. It requires, forwai/wai-rs:tests/*.rsis named by a workflow step, or listed with its reason intests/NOT-IN-CI.txt;[[test]]entry whoserequired-featuresare exactly its gate, so cargo refuses to build it without them ("target requires the features");[[test]]entry names a file that exists.Cargo.tomldeclaresrequired-featuresfor every feature-gated test file.int_video,int_video_halfpel,int_video_keyframe), the integer world tests (int_world,int_world2) and the JPEG AI bitstream reader (jpegai_bitstream_calibration), in both fast-kernels steps;world_replay,world_modelandint_world_shared, in a new step (no other step enablesworld_model);semantic_path, in thecodec-wrappersjob, the one placecodecsbuilds.ok, which is worse than not running.wai_provin CI. It needscodecs, so no workflow built it, and its--carrypath, which wrote the committed provenance vectors, ran only by hand.codec-wrappersnow builds it, carries the committed receipt onto itself, and requires the asset and receipt written again byte for byte. A receipt changed by one byte must be refused.wai-energy-receipts.yml's note that no workflow builds it is updated.Evidence
Run on the build host:
fuzz_smokewith nocodecs)fuzz_smokein packagewairequires the features:codecs"🤖 Generated with Claude Code