ethereum / ethereum/execution-specs

New fixture format that fill the tests in a ready-to-execute format

Open
#1,478 1 comment 0 reactions 0 assignees View on GitHub
stale
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

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.