Patch BPO2 mainnet fixture release for tests@v20.0.0. This is a patch (Z) release under the tests@vX.Y.Z scheme: There are no consensus-impacting changes; this release covers test additions and other fixture modifications.
Highlights
-
feat(test-fill): pack Engine X pre-alloc groups by @danceratopz in #3122
This removes
2179pre-alloc groups from theblockchain_test_engine_xfixtures (from5458to3279). Theeels/consume-enginexsimulator boots one execution client per pre-alloc group and reuses it across the group's tests, so the group count is the main driver of simulator runtime: this is roughly40%fewer client boots per run. Boot-to-ready times below are measured from the client logs of aconsume-enginerun (one client per test), which set the per-group cost that is saved:Client Boot to ready Removed per run (x 2,179) At --sim.parallelism=4besu ~6.7 s ~4.0 h ~1.0 h erigon ~0.45 s ~16 min ~4 min ethrex ~0.08 s ~3 min ~45 s geth ~0.43 s ~15 min ~4 min nethermind ~3 s ~1.8 h ~27 min nimbus-el ~2.8 s ~1.7 h ~25 min reth ~0.83 s ~30 min ~8 min Boot times exclude Docker container start and stop overhead.
New Tests
-
feat(tests): access-list slot warmth survives a failed
CREATE2by @chfast in #3086 -
fix(tests): test tx max nonce at
u64boundary, add nonce overflow test by @spencer-tb in #3165Adds transaction nonce validation coverage from Frontier onwards: rejection at the
U64.MAX_VALUEboundary and rejection of nonce overflow. -
feat(tests): restore
sstore_combinationsas a hand-written test by @chfast in #3154Restores
sstore_combinationsas a hand-written Istanbul test (EIP-2200) after it was deleted accidentally by the ported-static regeneration sweep. Twelve orphanedported_staticfiller stubs are removed and the matrix is reduced from5187to774cases per fork, with each reduction step trace-verified to keep the sameSSTOREcoverage.
Changed and Fixed Tests
-
chore(specs): reorder tx validity checks by @SamWilsn in #3036
Reorders the transaction validity checks across the mainnet-fork specs (order only, no change to any state-transition result), and updates
test_tx_nonceto emit state-test fixtures instead of blockchain-test fixtures.
Fixture Format Changes
-
feat(test-fill): pack Engine X pre-alloc groups by @danceratopz in #3122
-
fix(test-fixtures): emit chainId in state test fixture transaction by @spencer-tb in #3125
State-test fixtures now emit
chainIdin the transaction, so client state-test consumers should expect the field on every state test.