[package] name = "epiphany-testkit" version = "0.0.0" edition.workspace = true rust-version.workspace = true authors.workspace = true repository.workspace = true description = "The Epiphany conformance testkit (spec QUICKSTART, Agent F): deterministic generators for the public types, the canonical round-trip harness, the CRDT convergence and equivocation harnesses, the crash-recovery and manifest-selection gates, and the layout round-trip. Cross-cutting; drives the real epiphany-determinism/core/ops/bundle/layout-ir crates." [dependencies] epiphany-determinism.workspace = true epiphany-core.workspace = true epiphany-bundle.workspace = true epiphany-ops.workspace = true epiphany-textproj.workspace = true # Agent E's layout IR has landed; the layout round-trip harness (criterion 6) # now drives the real crate instead of an in-tree stub. epiphany-layout-ir.workspace = true # The Chapter 10 performance benches (worklist F1) run under criterion; the # budget-gate logic itself lives in `src/budget.rs` on plain `std`, so the # library builds without it. The editor-core + engrave pair drives the # multi-system click-to-insert regression test (`tests/multisystem_click.rs`) # over the real casting-off engraver — dev-only, so the library dependency # graph is unchanged (engrave's own dev-dependency on this crate makes the # cycle dev-only, which cargo permits). [dev-dependencies] criterion.workspace = true epiphany-editor-core.workspace = true epiphany-engrave.workspace = true # Drives the whole suite at scale outside the unit-test timeout — the analogue # of epiphany-determinism's `fuzz_roundtrip` and epiphany-bundle's `fuzz_crash`. [[example]] name = "conformance_suite" # The Chapter 10 performance-budget benches (worklist F1; DECISIONS.md F0/F1). # `harness = false`: each bench owns `main()`, running criterion's measurements # first and then the budget gate — the assertion layer criterion cannot express # — exiting nonzero on an unexpected budget miss. [[bench]] name = "reduction" harness = false [[bench]] name = "bundle" harness = false