# step: timed text · wai-rs and timed_text_verify.py # order: 150 # features: timed_text # paths: wai/extensions/timed-text.md # independent: timed-text live python3 -I live-conformance/timed_text_verify.py live-conformance/captions # # wai.text.timed (extensions/timed-text.md): the reference module's unit tests (cue model, # annotation, WebVTT, IMSC1 and its render-model bound, timelines, disclosure, and the # 608 encoder and decoder) and tests/timed_text.rs (every file of the committed corpus, # vectors.json and each expected .vtt, .ttml and .608.hex, regenerates byte for byte # from its fixed seeds and no other file is there, wai-rs gives every case its stated # outcome, the corpus covers every 608 code path, and §12 lists exactly the reference's # codes); and, in the step of every independent verifier above, the corpus's second # implementation, timed_text_verify.py, written from # the extension's text and sharing no code with wai-rs, which verifies every event with # live_events_verify.py, writes every output byte for byte from the text, parses each # IMSC1 document with xml.etree, and requires every mutated copy of the corpus to fail; # standard library only, run isolated (-I). # # The paths this step brings to the workflow's trigger, and why: # wai/extensions/timed-text.md: tests/timed_text.rs requires this extension's §12 to list the # codes the reference reports, 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 timed_text::) (cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --test timed_text)