Skip to content
IceRootDocs

Testing and compatibility

Heartwood runs the same input through Rust and a pinned Solar reference, then compares their outputs and modeled rejection classes.

LevelComparisonAvailability
L0Committed reference vectorsImplemented
L1Random and mutated requestsPlanned
L2Block sequences and state digestsPlanned
L3Matching scenarios on separate devnetsPlanned
L4A mixed reference and Heartwood networkPlanned
Terminal window
make check

This includes the committed-vector comparison and the release feature check. You can test the crypto crate directly:

Terminal window
cargo test -p heartwood-crypto --locked --all-features

After completing the reference setup:

Terminal window
make oracle-image
make e2e

The 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.

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.