:: In active development. Codebase tracks the dev branch. Explore at your own risk. Official release coming soon.
Skip to content

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:

bash
RUST_LOG=warn cargo +nightly test --release

RUST_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