# step: browser sink · wai-rs, wai-live-web and browser_sink_verify.py # order: 470 # features: browser_sink browser_sink,receipt_claims # paths: wai/extensions/browser-sink.md wai/extensions/platform-decode.md wai/platform-decode-conformance/** wai/identify-conformance/ext/** wai/encode-conformance/streams/** # independent: browser-sink live python3 -I live-conformance/browser_sink_verify.py live-conformance/browser platform-decode-conformance # # The browser sink (extensions/browser-sink.md): the reference module's unit tests (the # registry gate's rows, registered tiers, integers as §5 reads them, a binding's # canonical form, an answer for an unregistered codec string never read, powerEfficient # never stated off the user agent's route, the side table's ambiguity) and # tests/browser_sink.rs (both files of the committed corpus regenerate byte for byte and # no other file is there, wai-rs gives every case its stated outcome, every reason of # §11 appears in the corpus and §11 lists exactly the reference's codes, and the chain # the generator signs by hand verifies under jwp_delivery); wai-live-web's browser # functions held to the same corpus natively, and its wasm-route decoder verifying, # decoding and binding every chain object to the published frame digests; and, in the # step of every independent verifier above, the # corpus's second implementation, browser_sink_verify.py, written from the extension's # text and sharing no code with wai-rs, which reads the registry export for each # capability's class, recomputes every route, evaluation, energy entry, binding, chain # signature, frame state and side table, changes the answers for unregistered codec # strings every way and requires the corpus still to pass, and requires every mutated # copy of the corpus to fail; and, given platform-decode-conformance/, recomputes from each # payload of queries.json the query of platform-decode §2 (every codec string, size, rate, # bit rate and description, video and audio) and the chunks of §2.3, with its own readers, # and requires every mutated copy of those vectors to fail; standard library only, run # isolated (-I). The browser's own run of it is joule-moq-web.yml's scenario binding. # # The paths this step brings to the workflow's trigger, and why: # wai/extensions/browser-sink.md: tests/browser_sink.rs requires this extension's §11 to list the # codes the reference reports, browser_sink_verify.py reads its §2, §4.1, §4.2 and §11 tables # and capability-constraints' §3.1 register, and the registry's wire identifiers test reads its # sections. # wai/extensions/platform-decode.md: browser_sink_verify.py reads §2's tables (the capabilities # it maps, VP9's levels and colour spaces), and platform_decode::tests the vectors. # wai/platform-decode-conformance/**, wai/identify-conformance/ext/**, # wai/encode-conformance/streams/**: the query vectors and the payloads they name. set -euo pipefail (cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --lib platform_decode::) (cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --lib browser_sink::) (cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --test browser_sink) (cd wai-rs && "$RUNNER_TEMP/wai-bins/union/wai_browser_sink_vectors" verify ../live-conformance/browser) (cd wai-live-web && cargo test --locked --features int_video --lib browser_tests)