-
Notifications
You must be signed in to change notification settings - Fork 59
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
feat(fw): Call evmone-eofparse
on EOF tests filling
#519
Conversation
b34d2ac
to
a53e0f4
Compare
this PR consumes #516 that introduced this feature example use |
a53e0f4
to
c29c9c0
Compare
It would be nice if this could be made generic in a manner like TransitionTool is made generic, I expect each client to expose their own tool. Also, I would like a format that accepts required arguments. Besu's equivelant is Combine this with the fork being validated possibly being another argument. |
I think @danceratopz might know a bit better than I do how to implement something along these lines. We might need to create another package like we currently have We might also need to implement new parameters to configure it in the My main ask when we implement this is that the normal test filling process does not fail if there no eof tool installed, only fails if we are trying to fill an EOF test. |
c29c9c0
to
59f57a0
Compare
we stick to evmone-eofparse for verification for now till later when we refactor tooling capture and expection verification |
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.
Very nice.
Really like how/where eofparse
is called, I had a mental block on this one and wanted to add it to the FixtureCollector
- it's much more logical in the fixture generator for this use case!
Love the exceptions raised by verify_fixtures()
- really clear.
After aligning with @winsvega, I've refactored the code a bit in #538, which addresses the small concerns below. Please let me know what you think.
From the above comment from @shemnon:
It would be nice if this could be made generic in a manner like TransitionTool is made generic, I expect each client to expose their own tool.
We will definitely do this! But will add this work in a separate PR as it requires quite a bit of code organization. Don't want to block this helpful addition though, so we should get this merged first.
* refactor(fw): define and use exception classes for eofparse errors Additionally, truncate code output in the terminal if it's longer than 120 characters. * refactor(fw): avoid importing generically named 'run' into module namespace * feat(fw): check that eofparse exits with reasonble exit code * refactor(fw): use bidict to map eof exceptions & evmone error messages * feat(fw): better fail message if an exception message is missing * refactor(fw): rename EvmoneExceptionParser to EvmoneExceptionMapper * chore(fw): add todo; don't forget to improve undefined exception handling
@marioevz, Regarding this, we warn at the end of the test session if |
…thereum#519) Co-authored-by: Dimitry Kh <dimitry@ethereum.org> Co-authored-by: danceratopz <danceratopz@gmail.com>
* new(test): add tests for EOF/EIP-663 DUPN SWAPN * improve code generation * chore(ci): Update workflow actions to use Node.js 20 versions (#527) * chore(ci): Update workflow actions to use Node.js 20 versions. * chore: Add changelog. * Add --traces support to besu (#511) Add support for adding traces to output when using Besu. Signed-off-by: Danno Ferrin <danno@numisight.com> * feat(fw): call `evmone-eofparse` on generated EOF fixtures in fill (#519) Co-authored-by: Dimitry Kh <dimitry@ethereum.org> Co-authored-by: danceratopz <danceratopz@gmail.com> * docs(fix): small fix to tracing report in readme cf #511 (#539) * fix EOF return stack tests The tests were previously corrected against a bug in Besu, Signed-off-by: Danno Ferrin <danno@numisight.com> * EXCHANGE Exercise exchange operation Signed-off-by: Danno Ferrin <danno@numisight.com> * speling Signed-off-by: Danno Ferrin <danno@numisight.com> * move Signed-off-by: Danno Ferrin <danno@numisight.com> * feat(fw): Add EXCHANGE encoder * new(tests): EOF - EIP-663: Invalid container due to invalid exchange --------- Signed-off-by: Danno Ferrin <danno@numisight.com> Co-authored-by: Paweł Bylica <pawel@ethereum.org> Co-authored-by: spencer <spencer.taylor-brown@ethereum.org> Co-authored-by: Mario Vega <marioevz@gmail.com> Co-authored-by: Dimitry Kh <dimitry@ethereum.org> Co-authored-by: danceratopz <danceratopz@gmail.com>
🗒️ Description
Adds EOF exception checking using evmone-eofparse tool. Prints a nice message now if expected exception does not match returned by evmone or if valid eof test fails on evmone and so on.
🔗 Related Issues
✅ Checklist
mkdocs serve
locally and verified the auto-generated docs for new tests in the Test Case Reference are correctly formatted.