go-ethereum/tests
Xuanyu Hu 7cd400612f
tests: check correct revert on invalid tests (#33543)
This PR fixes an issue where `evm statetest` would not verify the
post-state root hash if the test case expected an exception (e.g.
invalid transaction).

The fix involves:
1.  Modifying `tests/state_test_util.go` in the `Run` method.
2. When an expected error occurs (`err != nil`), we now check if
`post.Root` is defined.
3. If defined, we recalculate the intermediate root from the current
state (which is reverted to the pre-transaction snapshot upon error).
4. We use `GetChainConfig` and `IsEIP158` to ensure the correct state
clearing rules are applied when calculating the root, avoiding
regressions on forks that require EIP-158 state clearing.
5. If the calculated root mismatches the expected root, the test now
fails.

This ensures that state tests are strictly verified against their
expected post-state, even for failure scenarios.

Fixes issue #33527

---------

Co-authored-by: MariusVanDerWijden <m.vanderwijden@live.de>
2026-01-09 12:53:55 +01:00
..
evm-benchmarks@d8b88f4046 tests: update evm-benchmarks (#26255) 2022-11-28 11:13:41 +01:00
fuzzers tests/fuzzers: remove unused field from kv struct in rangeproof fuzzer (#33447) 2025-12-19 09:13:00 +08:00
solidity all: update license headers and AUTHORS from git history (#24947) 2022-05-24 20:39:40 +02:00
testdata@81862e4848 tests/testdata: revert to v17.0 2025-04-10 23:55:06 +02:00
block_test.go build: update to execution-spec-tests v5.0.0 (#32592) 2025-09-18 22:58:40 +02:00
block_test_util.go core/state, core/tracing: new state update hook (#33490) 2026-01-08 11:07:19 +08:00
difficulty_test.go all: remove TerminalTotalDifficultyPassed (#30609) 2024-10-23 08:26:18 +02:00
difficulty_test_util.go all: add whitespace linter (#25312) 2022-07-25 13:14:03 +03:00
gen_btheader.go build, tests: add execution-spec-tests (#26985) 2023-08-26 15:42:27 +02:00
gen_difficultytest.go all: simplify timestamps to uint64 (#19372) 2019-04-02 23:28:48 +03:00
gen_stauthorization.go core/types: change SetCodeTx.ChainID to uint256 (#30982) 2025-01-14 06:42:18 -07:00
gen_stenv.go tests: add currentExcessBlobGas to state tests (#28735) 2023-12-28 11:39:28 +01:00
gen_sttransaction.go all: implement eip-7702 set code tx (#30078) 2024-12-16 11:29:37 +01:00
init.go cmd/evm/internal/t8ntool, trie: support for verkle-at-genesis, use UBT, and move the transition tree to its own package (#32445) 2025-11-14 15:25:30 +01:00
init_test.go build: update EEST fixtures to prague devnet-6 (#31088) 2025-02-06 12:33:40 +01:00
rlp_test.go tests: get test name from testing.T (#22941) 2021-05-25 22:47:14 +02:00
rlp_test_util.go internal,tests: replace noarg fmt.Errorf with errors.New (#27335) 2023-05-25 02:54:28 -04:00
state_test.go cmd, tests: fix snapshot dump and export-preimages (#32650) 2025-09-22 14:48:18 +08:00
state_test_util.go tests: check correct revert on invalid tests (#33543) 2026-01-09 12:53:55 +01:00
transaction_test.go build: update to execution-spec-tests v5.0.0 (#32592) 2025-09-18 22:58:40 +02:00
transaction_test_util.go all: replace fmt.Errorf with errors.New (#32286) 2025-07-28 10:13:18 +02:00