Skip to content
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

✨(gentest): make gentest great #866

Open
6 of 10 tasks
danceratopz opened this issue Oct 2, 2024 · 7 comments
Open
6 of 10 tasks

✨(gentest): make gentest great #866

danceratopz opened this issue Oct 2, 2024 · 7 comments
Labels
scope:gentest Scope: Changes to gentest CLI command type:feat type: Feature

Comments

@danceratopz
Copy link
Member

danceratopz commented Oct 2, 2024

The gentest CLI is a really nice tool that can generate and write a Python (pytest) test module to disk given a type 0 transaction hash on a live network. This generates a state_test from the mainnet transaction 0xa41f...06be:

uv run gentest 0xa41f343be7a150b740e5c939fa4d89f3a2850dbe21715df96b612fc20d1906be tests/paris/test_0xa41f.py

Currently, due to its limited transaction type support (type 0 only), it's of limited use. This meta ticket is to track progress of making gentest an easy-to-use CLI tool that can generate test cases for specific issues observed on devnets, and potentially, to allow benchmarking of an EVM's transaction processing using blockchain_tests created from real mainnet data.

While working on the issues below, we should consider and try to ensure that gentest also works on Verkle and EOF testnets.

gentest Tasks

Preview Give feedback
  1. 1 of 1
    scope:gentest type:feat
  2. scope:gentest type:feat
  3. scope:gentest type:refactor
  4. scope:gentest type:bug
  5. scope:gentest type:feat
  6. scope:gentest type:test
  7. scope:gentest type:feat
  8. scope:gentest type:feat
  9. scope:gentest type:feat
  10. scope:gentest type:feat
@danceratopz danceratopz added scope:gentest Scope: Changes to gentest CLI command type:feat type: Feature labels Oct 2, 2024
@danceratopz
Copy link
Member Author

@raxhvl said he's happy to pick this up! ☺️

Thanks @raxhvl! Above I tried to outline the most obvious tasks for gentest. Please see these as suggestions - if you have any other ideas or inputs, just go for it! I'm also happy to jump in and help out if need be.

@raxhvl
Copy link
Contributor

raxhvl commented Oct 5, 2024

Thanks @danceratopz I will comment on individual issues as I start working on them.

@danceratopz
Copy link
Member Author

The testinit command has now become et make test - the tasks related to make test are now tracked here: #973

@chfast
Copy link
Member

chfast commented Jan 27, 2025

Hey there, I've just become aware of this source of execution data: https://ethpandaops.io/data/xatu/schema/canonical_execution_/#canonical_execution_storage_reads
It may be easier to access these instead of going through a node RPC.

@raxhvl
Copy link
Contributor

raxhvl commented Jan 27, 2025

Thanks @chfast!

@danceratopz
Copy link
Member Author

Hey there, I've just become aware of this source of execution data: https://ethpandaops.io/data/xatu/schema/canonical_execution_/#canonical_execution_storage_reads It may be easier to access these instead of going through a node RPC.

Thanks @chfast, this is a great idea! I think we'll have to go with RPC support for now, as xatu is unlikely to add devnet support to the database. But it is definitely something we can consider down the line once gentest is more feature complete.

@chfast
Copy link
Member

chfast commented Jan 28, 2025

I've done some research on this, and I've found some issues:

  • they use some specific data format that I'm not familiar with, but it is not JSON
  • there is no data for mainnet (at least not in all categories); e.g. there is not data about storage.

So in general, this is probably not good data source.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
scope:gentest Scope: Changes to gentest CLI command type:feat type: Feature
Projects
None yet
Development

No branches or pull requests

3 participants