# step: holdings · wai-rs and holdings_verify.py # order: 550 # features: holdings # paths: wai/extensions/holdings.md # independent: holdings live needs=cryptography python3 -I live-conformance/holdings_verify.py live-conformance/holdings # # wai.delivery.holdings (extensions/holdings.md): the reference module's unit tests (an entry's # one form, a record read back and every rule refusing, queries and a plan, and the corpus # reaching every stated outcome and failing a changed one) and tests/holdings.rs (vectors.json # regenerates byte for byte from its fixed seeds, wai-rs gives every case its stated outcome, # and §7 lists exactly the reference's codes); and, in the step of every independent verifier # above, the corpus's second implementation, # holdings_verify.py, written from the extension's text and sharing no code with wai-rs, which # verifies group receipts with jwp_verify.py and signatures with the shared _ed25519.py, writes # the record, its verdict, queries and plans itself, reads §7, 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/holdings.md: tests/holdings.rs requires §7 to list the reference's codes, and # holdings_verify.py reads it. set -euo pipefail (cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --lib -- holdings::) (cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --test holdings)