# step: per-session ad tracks · wai-rs and compose_ad_track_verify.py # order: 561 # features: compose_ad_track # paths: wai/extensions/live-compose.md # independent: compose-ad-track live python3 -I live-conformance/compose_ad_track_verify.py live-conformance/compose-ad-track # # live-compose §5.10 (wai.live.compose's ad-track binding, WAT1): the reference module's unit # tests (a binding of the session's own record under the descriptor's ad frame accepted; one whose # record's frame is another's, whose record is shared or another session's, whose slot the record # does not have, whose descriptor is not an ad frame, that starts before the descriptor is # effective or that is signed by a key that did not sign the record refused; a signature over the # wrong bytes refused; the session's ad track taking the ad tile only while the binding is in # effect, the room's ad participant then with no tile and no voice, the program where the room's # frame puts it; and the corpus reaching every stated outcome and failing a changed one) and # tests/compose_ad_track.rs (vectors.json regenerates byte for byte from its fixed seeds, wai-rs # gives every case its stated outcome, and §5.10.5 lists exactly the reference's codes); and, in # the step of every independent verifier above, the corpus's second implementation, # compose_ad_track_verify.py, written from the extension's text and sharing no code with wai-rs, # which reads descriptors and lays rooms out with live_compose_verify.py, reads records, their # frames and ad regions with stitched_presentation_verify.py and signatures with the shared # _ed25519.py, writes the binding, its verification and the layout of a session, requires every # mutated copy of the corpus to fail and drops each of its own checks in turn; run isolated (-I). # # The paths this step brings to the workflow's trigger, and why: # wai/extensions/live-compose.md: tests/compose_ad_track.rs requires §5.10.5 to list the # reference's codes, compose_ad_track_verify.py reads it, and the registry's wire identifiers # test reads §5.10.2. set -euo pipefail (cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --lib -- compose_ad_track::) (cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --test compose_ad_track)