ethereum / ethereum/execution-specs

tracker(gentest): make `gentest` great

Open
#1,497 8 comments 1 reaction 0 assignees View on GitHub
A-test-gentest C-feat C-tracker P-medium stale
Dominant language
Python
Stars
1.2k
Forks
505
Avg merge
2d 14h
Merged PRs (30d)
116

Description

The [`gentest` CLI](https://github.com/ethereum/execution-spec-tests/blob/96efd737b258eeb8efb615e9123d931b6dfda302/src/cli/gentest.py) 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`](https://etherscan.io/tx/0xa41f343be7a150b740e5c939fa4d89f3a2850dbe21715df96b612fc20d1906be):

```bash
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_test`s 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
- [x] https://github.com/ethereum/execution-spec-tests/issues/893
- [x] ethereum/execution-spec-tests#891
- [x] ethereum/execution-spec-tests#863
- [x] ethereum/execution-spec-tests#864
- [x] ethereum/execution-spec-tests#859
- [x] ethereum/execution-spec-tests#860
- [x] ethereum/execution-spec-tests#861
- [ ] ethereum/execution-specs#1498
- [ ] ethereum/execution-specs#1499
- [x] ethereum/execution-spec-tests#1253
- [x] ethereum/execution-spec-tests#90

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.