Expand description
Portable assertion accounting for the moonpool framework.
This is the Antithesis-style assertion suite — boolean (always / sometimes /
reachable / unreachable), numeric guidance with watermarks, compound
sometimes-all with frontier tracking, and per-value sometimes_each buckets —
factored out of moonpool-explorer so it has zero dependencies and
compiles on wasm32-unknown-unknown, macOS, and Linux.
§How it relates to exploration
The counts live in a region of memory. By default init allocates that
region on the heap (single process — wasm, macOS, plain native test runs).
moonpool-explorer instead allocates a MAP_SHARED region and hands it to
install_region, so the same accounting is visible across forked
children, and installs a DiscoveryHooks that turns “a new assertion state
was reached” into coverage marking and fork dispatch. With no hooks installed
the accounting is pure: assertions still record pass/fail/watermark/frontier,
which is all the UntilCoverageStable stop condition and contract
validation need.
See hooks for the coupling surface and region for the storage model.
Re-exports§
pub use buckets::EACH_BUCKET_MEM_SIZE;pub use buckets::EachBucket;pub use buckets::MAX_EACH_BUCKETS;pub use buckets::assertion_sometimes_each;pub use buckets::each_bucket_read_all;pub use buckets::unpack_quality;pub use hooks::DiscoveryHooks;pub use hooks::clear_discovery_hooks;pub use hooks::set_discovery_hooks;pub use region::assertion_table_ptr;pub use region::clear;pub use region::each_bucket_ptr;pub use region::init;pub use region::install_region;pub use region::prepare_next_seed_reset;pub use region::reset;pub use slots::ASSERTION_TABLE_MEM_SIZE;pub use slots::AssertCmp;pub use slots::AssertKind;pub use slots::AssertionSlot;pub use slots::AssertionSlotSnapshot;pub use slots::MAX_ASSERTION_SLOTS;pub use slots::assertion_bool;pub use slots::assertion_numeric;pub use slots::assertion_read_all;pub use slots::assertion_sometimes_all;pub use slots::msg_hash;