open-standards/.github/wai-conformance/verifiers/native-sink.sh
Transaction Science 34fe16b0f8 Each independent verifier's needs= is what a run without packages shows, and the nightly run holds that
takedown failed without cryptography and declared nothing; channel-lineup, revenue-share,
opportunity-report, native-sink and rung-price passed without it and declared it, so a failed run
of one would have named a package it does not read. `wai-conformance-lists.py needs` runs the union
on a virtual environment's interpreter and compares; wai-conformance.yml runs it on the schedule.

Changelog: none
Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-07 10:56:00 -05:00

28 lines
1.9 KiB
Shell

# step: native sink · wai-rs and native_sink_verify.py
# order: 460
# features: native_sink
# paths: wai/extensions/native-sink.md
# independent: native-sink live python3 -I live-conformance/native_sink_verify.py live-conformance/native-sink
#
# The native sink (extensions/native-sink.md): the reference module's unit tests (dates,
# durations and attribute lists read as a player reads them, origins serialized as RFC 6454
# does, names that state a content hash and names that do not, the acknowledgements
# rebuilt from hashes alone equal to stream-audit's reference, a bundle that verifies and
# one refused for another owner or channel) and tests/native_sink.rs (vectors.json
# regenerates byte for byte from its seeds and no other file is there, every call gets the
# answer it states, §8 lists exactly the reasons the corpus reaches, and every case run
# through the C interface's symbols gets the same answers); and, in the step of every
# independent verifier above, the corpus's second
# implementation, native_sink_verify.py, written from the extension's text and sharing no
# code with wai-rs, which replays every case, reads playlist receipts and their chain with
# http_verify.py, holds every bundle to its own session field by field and verifies it with
# stream_audit_verify.py, requires every mutated copy of the corpus to fail, and drops each
# of its own checks in turn and requires the corpus to catch the weakened verifier;
# standard library only, run isolated (-I). The Swift package runs in wai-sink-swift.yml.
#
# The paths this step brings to the workflow's trigger, and why:
# wai/extensions/native-sink.md: tests/native_sink.rs requires this extension's §8 to list exactly
# the reasons its corpus reaches, and native_sink_verify.py reads that table.
set -euo pipefail
(cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --lib native_sink::)
(cd wai-rs && cargo test --no-default-features --features "$WAI_FEATURES" --test native_sink)