-
Notifications
You must be signed in to change notification settings - Fork 153
feat(unit-tests): verify transition tool support #1263
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
fd1abe3
to
116eb5d
Compare
37a1c4b
to
2913584
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @winsvega for identifying and fixing the bug. I'm not sure about the approach here for testing the t8n
tool (more below), so I moved your fix to a separate PR #1268 to get that merged more quickly.
I agree that it's really important to add better testing for our t8n
support/compatibility. I would suggest however, to move all these tests to our unit tests under ./src/
and improve the unit testing flow so that it can run with any t8n tool.
Then, we add jobs to the existing tox_verify.yaml
that runs these unit tests with every t8n tool we support.
The issue is that it requires to build geth, evmone, ... t8ns. |
I update the PR so now it is a unit test. but it will require t8n binaries to be installed before the run. |
This will be a nice addition for the future. Note it would have caught this issue: #1276 Some thoughts below:
|
Pushed a fix for transaction type 4 not working in Geth's t8n. |
Still failing for some reason, and I didn't have time to debug it. |
Now it fails because eels on Prague rejects the transaction.
shall we fix t8n's commit hashes to not crash on t8n changes? Ah I see eels prague resolution in CI is not done correctly |
@spencer-tb I agree that we should keep CI fast, but if you check the actions run for this PR, the longest one takes 6 minutes, and since they are running in parallel I think it should be ok. I think the biggest offender is not the building of evmone but rather the Most of the issues is that they instantiate an EELS resolver instance per parametrized test, so I actually have an idea on how to address those:
Let me know what you think, I'm going to go ahead and merge this PR and we can revisit speeding up in the way I mention above. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks for the changes.
* unit test to check transition tool support * feat(clis): Implement `is_installed` method for `EthereumCLI` * fix(clis): Geth non-optional binary * fix(clis): Tests: Make t8n support unit tests run on installed t8n tools only * fix(clis): type fix * fix(clis): unit test non-sorted forks * feat(clis): Add unit test to CI-only checks * build evms for unit tests framework CI * support evmone action on macOS * add Prague resolution for eels in CI * refactor(fw): Generalize `installed_t8n` fixture --------- Co-authored-by: Mario Vega <[email protected]>
* unit test to check transition tool support * feat(clis): Implement `is_installed` method for `EthereumCLI` * fix(clis): Geth non-optional binary * fix(clis): Tests: Make t8n support unit tests run on installed t8n tools only * fix(clis): type fix * fix(clis): unit test non-sorted forks * feat(clis): Add unit test to CI-only checks * build evms for unit tests framework CI * support evmone action on macOS * add Prague resolution for eels in CI * refactor(fw): Generalize `installed_t8n` fixture --------- Co-authored-by: Mario Vega <[email protected]>
* unit test to check transition tool support * feat(clis): Implement `is_installed` method for `EthereumCLI` * fix(clis): Geth non-optional binary * fix(clis): Tests: Make t8n support unit tests run on installed t8n tools only * fix(clis): type fix * fix(clis): unit test non-sorted forks * feat(clis): Add unit test to CI-only checks * build evms for unit tests framework CI * support evmone action on macOS * add Prague resolution for eels in CI * refactor(fw): Generalize `installed_t8n` fixture --------- Co-authored-by: Mario Vega <[email protected]>
🗒️ Description
Despite checks, and unit test pass, evmone t8n input is still inconsistent
geth t8n requires 0x20000 format for hex input and support decimals
evmone t8n requires 0x020000 format for hex input and does not support decimals
eest t8n supports all
first I introduce a unit test CI to verify that test filling works correctly on t8n's
TODO
design a simple test that triggers interesting t8n input on all forks. (with blockheader history and all fork fields in env) to run as a reference
🔗 Related Issues
Current coverage script is broken because of t8n format inconsistency with evmone after changing fields from int to hex in:
✅ Checklist
mkdocs serve
locally and verified the auto-generated docs for new tests in the Test Case Reference are correctly formatted.