Testing
vesl-test ships with vesl-nockup as both a Rust library (for cargo test integration tests) and a CLI (for ad-hoc kernel inspection). The vesl template wires the Rust dependency into [dev-dependencies] and lands a starter tests/graft_lifecycle.rs you can extend.
Quiet test output
cargo test inherits the kernel's INFO-level tracing (PMA durability sync, snapshot writes, event-log appends — hundreds of lines per test). The --quiet flag on the CLIs raises the log floor for one-shot CLI runs but does not propagate to the test harness. For a readable cargo test run, prepend RUST_LOG=warn:
RUST_LOG=warn cargo +nightly test --releaseRUST_LOG (if set) wins over the default; warn is the same floor --quiet uses on the CLI side.
The Rust Library
Three pages cover the vesl-test crate.
The Rust Harness
GraftTestHarness boots a compiled out.jam and runs the standard 8-op settle-graft suite. Walked on The Rust Harness.
Domain Pokes
For grafts beyond settle-graft, the harness ships typed harness.<verb>(...) methods per poke arm (generated from hoon/lib/harness-bindings.toml) plus the universal harness.poke_slab escape hatch for unbound builders. harness.peek_handle reads state back. Walked on Domain Pokes.
Slog Diagnostics
When the effect list alone can't tell a gate-deny from a cause-shape rejection, poke_slab_report captures the slogs the kernel emitted during the poke. Walked on Slog Diagnostics.
The CLI
The vesl-test binary boots a compiled out.jam and exposes inspect peek, watch, and verify-jam for inspection without writing a Rust hull. Walked on The CLI.
See Also
- vesl-nockup README — Testing with vesl-test — harness API and standard-suite walkthrough.
test/vesl-test/src/lib.rs—GraftTestHarnessAPI, the standard-suite definition,PokeReportand slog parsing.