Add Upstream Spec State Test Support to SAE#70
Draft
ceyonur wants to merge 11 commits intoceyonur/eth-testsfrom
Draft
Add Upstream Spec State Test Support to SAE#70ceyonur wants to merge 11 commits intoceyonur/eth-testsfrom
ceyonur wants to merge 11 commits intoceyonur/eth-testsfrom
Conversation
460db10 to
2b591dd
Compare
ceyonur
commented
Jan 8, 2026
Comment on lines
+136
to
+144
| // Context(cey): Path scheme is not supported yet | ||
| // if err := bt.checkFailure(t, test.Run(t, false, rawdb.PathScheme, nil, nil)); err != nil { | ||
| // t.Errorf("test in path mode without snapshotter failed: %v", err) | ||
| // return | ||
| // } | ||
| // if err := bt.checkFailure(t, test.Run(t, true, rawdb.PathScheme, nil, nil)); err != nil { | ||
| // t.Errorf("test in path mode with snapshotter failed: %v", err) | ||
| // return | ||
| // } |
Contributor
Author
There was a problem hiding this comment.
IMO we don't need to really waste time with running these.
| ) | ||
|
|
||
| root, err := stateDB.Commit(b.NumberU64(), true) | ||
| root, err := stateDB.Commit(b.NumberU64(), rules.IsEIP158) |
Contributor
Author
There was a problem hiding this comment.
This change was required to pass frontier tests (where the isEIP158=false
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR enables execution of the upstream spec state tests from libevm (see tests/state_test.go).
Execution Model Differences
Compared to upstream, SAE executes these tests through the full block production pipeline instead of calling directly into message application:
State Initialization:
Message Execution:
core.Messageobjects, whereas SAE uses the raw transactions in the block.Base Fee Handling:
Similar to blockchain tests, base fee values are adjusted to follow SAE rules.
Semantics and Ownership of State Logic
Skipped Tests
Following the same convention as blockchain tests (see PR #27), invalid tests that expect specific errors/exceptions are skipped. These cases rely on worst-case insertion rules and validations that SAE does not currently model.