Expand description
An independent test harness: describe a subject once, and the harness spends its time trying to make that description false.
Every verdict is claim-specific and method-specific and carries the evidence that earned it; a reduction-minted replay capsule is a second, separately earned value, joined to its report on the one execution key they share.
The harness belongs in test and tooling code, and it depends on nothing it judges.
A recipe may generate an inert call to this crate’s public constructors, but handwritten composition retains the same capability and this crate remains the sole judgment owner.
No type is re-exported at this root, so a call site spells the home that made the claim — oracle::StructuralVerdict, muterprater::ARTIFACT_MUTATIONS.
The four stamps are the exception, because Rust puts an exported macro at the crate root: generated_support!, trial_table!, bench_table!, and the ensure_ok! battery beside it.
§The instruments
descriptor owns the rows a producer writes into, and runner turns those rows and a typed invocation into typed reports.
generate owns the generation contract, corpus carries content-addressed warm starts for it, and properties holds the algebraic laws a subject can be held to.
interleave explores the orders concurrent parties’ commands can merge in, with the schedule itself a generated input, and network is the deterministic message-passing sim whose command-shaped deliveries feed that exploration.
The feature-gated preemption module explores instruction-level interleavings and the memory model through a target-qualified backend: the feature enables Loom where the pinned scheduler supports the target and retains typed backend unavailability everywhere else.
fault schedules owner-declared adversity, clock is the caller-declared wall-measurement boundary, and bench judges work under a pinned profile.
fuzz owns the Macroonz campaign shell around stable rustc coverage profiles: active toolchain readiness, root-independent coverage observations, novelty, and interesting-byte handoff into reduction and replay.
muterprater is the mutation-pressure engine, and oracle is the independence annex for claims where self-agreement would be vacuous.
report owns what a run leaves behind, depot is the harness’s own fact bank, and identity is the derivation substrate every identity here goes through.
Executable challenge material sits under tests/, where cargo requires it to live.
Modules§
- bench
- bench — a number that means the same thing tomorrow
- clock
- clock — wall measurement without a clock of its own
- corpus
- corpus
- depot
- depot
- descriptor
- descriptor — how a test is written down
- fault
- fault
- fuzz
- fuzz
- generate
- generate — deterministic search becomes reproducible evidence
- identity
- identity — one derivation mechanism
- interleave
- interleave
- muterprater
- muterprater
- network
- network
- oracle
- oracle — the second opinion
- preemption
- preemption
- properties
- properties — laws over owner-supplied meaning
- report
- report
- runner
- runner — declared trials become evidence
Macros§
- bench_
table - Declare a benchmark-table function from a table written as a block.
- ensure_
ok - Concludes that one outcome answered where an answer was owed.
- ensure_
refused - Concludes that one outcome refused where a refusal was owed.
- ensure_
refused_ with - Concludes that one outcome refused with the refusal it owed.
- generated_
support - Guards one generated support delivery: compares the producer’s expected schema identity against the published one, and releases either the trial/deferred pair or the benchmark/reporter pair only when the two agree.
- trial_
table - Stamps one complete authored world, one aggregate seat per declared execution suite, and one named lens per row, from a single declaration.