ethereum / ethereum/execution-specs
New fixture format that fill the tests in a ready-to-execute format
- Dominant language
- Python
- Stars
- 1.2k
- Forks
- 505
- Avg merge
- 2d 14h
- Merged PRs (30d)
- 116
Description
This is a request from @pk910 to have a new format which is sort of like an hybrid between `fill` and `execute`, but leaning more towards `fill`.
> We currently have the execute command to run eest test cases on chain. This is great, but also veeery veeery slow and has a few drawbacks when running in a CI.
With parallelization (-n) it's slightly faster, but also has it's limitations (you parallelize tests, not the individual payloads) and drives up resource usage crazily.
>
> It would be awesome if there is a way to build or export the testcases in a execution compatible format, but without actually executing them from eest side. Then we can pick that up from other tools and batch transactions, so we can run through all the test cases in minutes instead of hours/days 🙂
>
> I'm thinking about a format like this, repeated for each payload:
```json
{
"name": "...",
"privkey": "...", // privkey used to generate txs for this payload, mainly for cleaning up afterwards
"prerequisites": {
"0xaddr1": 12345, // fund 0xaddr1 with x wei
},
"txs": [
"0x...", // signed tx1 (deployment)
"0x...", // signed tx2 (some call?)
...
],
"postcheck": { // checks to run after the txs executed
"0xaddr1": {
"0xslot1": "0x...", // check specific storage slot values
}
}
}
```
>
> I think this is quite similar to the fixtures format, but should be filled with unique random private keys and leave all the cleanup / checks or funding to downstream tooling.
Contributor guide
Assessment
This issue has not been assessed yet.