lssa/test_fixtures
moudyellaz a806ebb94a refactor(cross-zone)!: register cross-zone programs as base builtins
BREAKING CHANGE: GenesisAction::DeployProgram and IndexerConfig.deploy_programs are removed. The cross-zone programs (inbox, outbox, ping_sender, ping_receiver, bridge_lock, wrapped_token) are now base builtins in testnet_initial_state, because program bytecode exceeds the genesis block inscription limit, so they cannot be shipped through genesis transactions.
2026-07-21 10:50:41 +02:00
..
2026-07-16 12:44:07 +02:00

test_fixtures

Shared test/bench fixtures that spin up bedrock + sequencer + indexer + wallet end-to-end.

Library

TestContext drives the full stack for integration tests and benches:

let ctx = TestContext::new().await?;              // fast: restores the prebuilt db dump
let ctx = TestContext::builder()
    .from_scratch()                                // apply genesis + claim supply live
    .with_genesis(actions)                         // custom genesis (implies from_scratch)
    .disable_indexer()
    .build().await?;

TestContext::new() restores fixtures/prebuilt_sequencer_db.dump (genesis + initial-supply claim blocks) instead of re-applying genesis and re-proving the private claims, then syncs the wallet. Use from_scratch() to build genesis live.

Binary

regenerate_test_fixture regenerates that dump (needs Docker):

just regenerate-test-fixture   # RISC0_DEV_MODE=1 cargo run -p test_fixtures --bin regenerate_test_fixture

Rerun and commit fixtures/prebuilt_sequencer_db.dump after changing genesis, the default accounts, block format, or initial state.