# step: stitched presentation · wai-rs, stitched_presentation_verify.py and the reference producer # order: 260 # features: stitched_presentation # paths: wai/extensions/stitched-presentation.md # independent: stitched-presentation live python3 -I live-conformance/stitched_presentation_verify.py live-conformance/stitched # # wai.video.stitched_presentation (extensions/stitched-presentation.md): the reference # module's unit tests (claims and pod-input records round-trip and their rules refuse, # markers' bodies, a CPM price scaled to one impression, the XML subset) and the # live-compose ad frames' (a squeeze's window and L tile the canvas, a double box's # boxes), and tests/stitched_presentation.rs (every file of the committed corpus # regenerates byte for byte from its fixed seeds and no other file is there, wai-rs gives # every record, claim and ad its stated facts and every vector its spend by currency, and # §9 lists exactly the codes the reference adds); then the tool's own check of the corpus # through its binary; and, in the step of every independent verifier above, the corpus's # second implementation, # stitched_presentation_verify.py, written from the extension's text and sharing no code # with wai-rs, which reads every playlist, asset list, MPD, VAST document, form-1 receipt, # record and claim itself, requires every mutated copy of the corpus to fail and catches # each of its own checks dropped; standard library only, run isolated (-I). Last, the # browser client's stitched producer (joule-moq-web/web/ads/stitched.js), which reads the # markers from the corpus's manifests, measures an ad's region, and writes and signs the # corpus's claims, byte for byte. # # The paths this step brings to the workflow's trigger, and why: # wai/extensions/stitched-presentation.md: tests/stitched_presentation.rs requires this # extension's §9 to list the codes the reference adds, stitched_presentation_verify.py reads # that table, and the registry's wire identifiers test reads its sections. set -euo pipefail (cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --lib stitched_presentation::) (cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --lib live_compose::layout::frame_tests) (cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --test stitched_presentation) (cd wai-rs && "$RUNNER_TEMP/wai-bins/union/wai_stitched_presentation" vectors verify ../live-conformance/stitched) node --test ../joule-code/joule-code-rs/crates/joule-moq-web/web/ads/stitched.test.mjs