Testing and compatibility
Heartwood runs the same input through Rust and a pinned Solar reference, then compares their outputs and modeled rejection classes.
Test layers
Section titled “Test layers”| Level | Comparison | Availability |
|---|---|---|
| L0 | Committed reference vectors | Implemented |
| L1 | Random and mutated requests | Planned |
| L2 | Block sequences and state digests | Planned |
| L3 | Matching scenarios on separate devnets | Planned |
| L4 | A mixed reference and Heartwood network | Planned |
Everyday checks
Section titled “Everyday checks”make checkThis includes the committed-vector comparison and the release feature check. You can test the crypto crate directly:
cargo test -p heartwood-crypto --locked --all-featuresCompare the oracle runs
Section titled “Compare the oracle runs”After completing the reference setup:
make oracle-imagemake e2eThe end-to-end target compares vector generation inside the oracle image and in the local reference checkout, then runs L0. Both checkouts must use the configured reference revision.
Preserve evidence
Section titled “Preserve evidence”Vectors are JSONL records with metadata and a SHA-256 manifest. They capture the reference revision, environment, network configuration, input, and computed output or error.
A mismatch identifies the JSON path or first differing byte. Investigate the input and its network rules before changing the expected record. Documented differences and skipped cases remain visible in the report.
make vectors-install updates committed vectors intentionally. The genesis vector class depends on a separate maintainer tool, so a regeneration missing that class is rejected instead of overwriting the complete set.