Update ethereum-tests to v15.0#3871
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files
Flags with carried forward coverage won't be shown. Click here to find out more. |
|
There is no longer a test file at For whatever reason, I can't find where in the commit history |
|
Hi, thanks for taking over :) To find the deletion:
|
|
I'm fairly sure the idea is that all |
|
The tests for specific EIP-4200 should be removed, but the test runner should run all header validation tests in the |
Ah, sweet thanks! |
|
EVM now runs all container tests in Thanks @ScottyPoi 😄 |
| Code0Outputs = 'first code section should have 0x80 (terminating section) outputs', | ||
| MaxStackHeight = `expected maxStackHeight`, | ||
| MaxStackHeightLimit = `stack height limit of 1024 exceeded: `, | ||
| MaxStackHeightLimit = `EOF_MaxStackHeightExceeded`, |
There was a problem hiding this comment.
Wait, is this necessary?
There was a problem hiding this comment.
This the exception as it's written in the test. Do we have another way of validating that the correct error was thrown?
There was a problem hiding this comment.
Ah right I see. We don't actually validate these errors (that these match the expected errors). For these specific tests we could maybe do so though, but in general the specification does not specify in which order certain errors have to be checked. So for instance a spec could say:
The EVM should check A and B.
For implementation purposes (like readability or optimizations) we could decide to check B before A, and this could thus yield a different error.
Also note that these errors will be thrown by the EVM. If we want to test those errors we should setup an error map which maps the expected error (so for instance EOF_StackUnderflow) to the error string we throw (for instance: stack underflow).
I just saw you added examples, we should likely investigate these (although I think that we throw the correct error on the correct place, but maybe the error string we throw is a bit misleading/faulty)?
Would be great to add :) Will leave this PR open.
There was a problem hiding this comment.
Ok, we could do the mapping of EOF_ErrorName to our error messages and leave our errors as they are
There was a problem hiding this comment.
This is not so simple actually -- see more examples below
ScottyPoi
left a comment
There was a problem hiding this comment.
In the EOF validation tests, we don't actually compare the _exception value from the test files to the error message, we're just confirming that an error is thrown.
If we do compare the _exception value, we get a bunch of errors. Mostly this is just semantic, but a few of them seem suspicious, like maybe we are throwing the wrong error.
| // Rename this test dir to the location of EOF header tests | ||
| // To test, use `npx vitest run ./scripts/eof-header-validation.spec.ts | ||
| const testDir = path.resolve('../ethereum-tests/EOFStuff/fixtures/eof_tests') | ||
| const testDir = path.resolve('../ethereum-tests/EOFTests') |
There was a problem hiding this comment.
Ah right this file should be disabled for browser tests
ScottyPoi
left a comment
There was a problem hiding this comment.
LGTM. Will address Error message testing in future PR






Updates ethereum-tests to https://github.com/ethereum/tests/releases/tag/v15.0