Skip to main content

Crate moonpool_assertions

Crate moonpool_assertions 

Source
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;

Modules§

buckets
Per-value bucketed accounting for assert_sometimes_each!.
hooks
Discovery hook: the one-way coupling surface to an exploration backend.
region
Storage for the assertion + each-bucket regions.
slots
Rich assertion slot tracking for the Antithesis-style assertion suite.