Skip to content

Commit d952142

Browse files
spencer-tbdanceratopzmarioevz
authored
refactor(benchmark): rename zkevm tests to benchmark (#1804)
* chore: rename zkevm tests to benchmark. * chore(docs): changelog. * refactor(tests,fw,tox,docs): rename zkevm marker to benchmark * chore(tests): remove zkevm specific nomenclature from docstrings * chore(ci|docs): rename zkevm releases to benchmark. * chore(docs): align changelog docs for future releases. * chore: final tweaks after rebase. * Apply suggestions from code review --------- Co-authored-by: danceratopz <danceratopz@gmail.com> Co-authored-by: Mario Vega <marioevz@gmail.com>
1 parent ad7cb1b commit d952142

File tree

18 files changed

+60
-62
lines changed

18 files changed

+60
-62
lines changed

.github/configs/evm.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ static:
1111
repo: ethereum/evmone
1212
ref: master
1313
targets: ["evmone-t8n", "evmone-eofparse"]
14-
zkevm:
14+
benchmark:
1515
impl: evmone
1616
repo: ethereum/evmone
1717
ref: master

.github/configs/feature.yaml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,24 @@ static:
1111
evm-type: static
1212
fill-params: --until=Prague --fill-static-tests ./tests/static
1313
solc: 0.8.21
14-
zkevm_36M:
15-
evm-type: zkevm
16-
fill-params: --from=Cancun --until=Prague --block-gas-limit 36000000 -m zkevm ./tests
14+
benchmark_30M:
15+
evm-type: benchmark
16+
fill-params: --from=Cancun --until=Prague --block-gas-limit 30000000 -m benchmark ./tests
1717
solc: 0.8.21
1818
feature_only: true
19-
zkevm_60M:
20-
evm-type: zkevm
21-
fill-params: --from=Cancun --until=Prague --block-gas-limit 60000000 -m zkevm ./tests
19+
benchmark_60M:
20+
evm-type: benchmark
21+
fill-params: --from=Cancun --until=Prague --block-gas-limit 60000000 -m benchmark ./tests
2222
solc: 0.8.21
2323
feature_only: true
24-
zkevm_90M:
25-
evm-type: zkevm
26-
fill-params: --from=Cancun --until=Prague --block-gas-limit 90000000 -m zkevm ./tests
24+
benchmark_90M:
25+
evm-type: benchmark
26+
fill-params: --from=Cancun --until=Prague --block-gas-limit 90000000 -m benchmark ./tests
2727
solc: 0.8.21
2828
feature_only: true
29-
zkevm_120M:
30-
evm-type: zkevm
31-
fill-params: --from=Cancun --until=Prague --block-gas-limit 120000000 -m zkevm ./tests
29+
benchmark_120M:
30+
evm-type: benchmark
31+
fill-params: --from=Cancun --until=Prague --block-gas-limit 120000000 -m benchmark ./tests
3232
solc: 0.8.21
3333
feature_only: true
3434
eip7692:

.github/workflows/tox_verify.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -182,8 +182,8 @@ jobs:
182182
env:
183183
EELS_RESOLUTIONS_FILE: ${{ github.workspace }}/.github/configs/eels_resolutions.json
184184
run: uvx --with=tox-uv tox -e tests-deployed
185-
tests_deployed_zkevm:
186-
name: Fill zkEVM test cases, deployed, ${{ matrix.os }}, ${{ matrix.python }}
185+
tests_deployed_benchmark:
186+
name: Fill benchmark test cases, deployed, ${{ matrix.os }}, ${{ matrix.python }}
187187
runs-on: ${{ matrix.os }}
188188
strategy:
189189
matrix:
@@ -209,4 +209,4 @@ jobs:
209209
- name: Run tox - fill tests for deployed forks
210210
env:
211211
EELS_RESOLUTIONS_FILE: ${{ github.workspace }}/.github/configs/eels_resolutions.json
212-
run: uvx --with=tox-uv tox -e tests-deployed-zkevm
212+
run: uvx --with=tox-uv tox -e tests-deployed-benchmark

docs/CHANGELOG.md

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@ The output behavior of `fill` has changed ([#1608](https://github.com/ethereum/e
1717
- Before: `fill` wrote fixtures into the directory specified by the `--output` flag (default: `fixtures`). This could have many unintended consequences, including unexpected errors if old or invalid fixtures existed in the directory (for details see [#1030](https://github.com/ethereum/execution-spec-tests/issues/1030)).
1818
- Now: `fill` will exit without filling any tests if the specified directory exists and is not-empty. This may be overridden by adding the `--clean` flag, which will first remove the specified directory.
1919

20-
#### Feature `zkevm` expanded to `zkevm_36M`, `zkevm_60M`, `zkevm_90M`, `zkevm_120M`
20+
#### Feature `zkevm` updated to `benchmark`
2121

22-
Renames `zkevm` to `zkevm_36M` and further expands the zkEVM features to run using 60M, 90M and 120M block gas limits in `fixtures_zkevm_36M.tar.gz`, `fixtures_zkevm_60M.tar.gz`, `fixtures_zkevm_90M.tar.gz` and `fixtures_zkevm_120M.tar.gz` respectively.
22+
Due to the crossover between `zkevm` and `benchmark` tests, all instances of the former have been replaced with the latter nomenclature. Repository PR labels and titles are additionally updated to reflect this change.
23+
24+
This update renames the `zkevm` feature release to `benchmark_30M` and further expands the latter for 60M, 90M, and 120M block gas limits in `fixtures_benchmark_30M.tar.gz`, `fixtures_benchmark_60M.tar.gz`, `fixtures_benchmark_90M.tar.gz`, and `fixtures_benchmark_120M.tar.gz` respectively.
2325

2426
Users can select any of the artifacts depending on their testing needs for their provers.
2527

@@ -38,7 +40,7 @@ Users can select any of the artifacts depending on their testing needs for their
3840
- 🔀 Refactor: Encapsulate `fill`'s fixture output options (`--output`, `--flat-output`, `--single-fixture-per-file`) into a `FixtureOutput` class ([#1471](https://github.com/ethereum/execution-spec-tests/pull/1471),[#1612](https://github.com/ethereum/execution-spec-tests/pull/1612)).
3941
- ✨ Don't warn about a "high Transaction gas_limit" for `zkevm` tests ([#1598](https://github.com/ethereum/execution-spec-tests/pull/1598)).
4042
- 🐞 `fill` no longer writes generated fixtures into an existing, non-empty output directory; it must now be empty or `--clean` must be used to delete it first ([#1608](https://github.com/ethereum/execution-spec-tests/pull/1608)).
41-
- 🐞 zkEVM marked tests have been removed from `tests-deployed` tox environment into its own separate workflow `tests-deployed-zkevm` and are filled by `evmone-t8n` ([#1617](https://github.com/ethereum/execution-spec-tests/pull/1617)).
43+
- 🐞 `zkevm` marked tests have been removed from `tests-deployed` tox environment into its own separate workflow `tests-deployed-zkevm` and are filled by `evmone-t8n` ([#1617](https://github.com/ethereum/execution-spec-tests/pull/1617)).
4244
- ✨ Field `postStateHash` is now added to all `blockchain_test` and `blockchain_test_engine` tests that use `exclude_full_post_state_in_output` in place of `postState`. Fixes `evmone-blockchaintest` test consumption and indirectly fixes coverage runs for these tests ([#1667](https://github.com/ethereum/execution-spec-tests/pull/1667)).
4345
- 🔀 Changed INVALID_DEPOSIT_EVENT_LAYOUT to a BlockException instead of a TransactionException ([#1773](https://github.com/ethereum/execution-spec-tests/pull/1773)).
4446

@@ -72,6 +74,7 @@ Users can select any of the artifacts depending on their testing needs for their
7274
- ✨ Added automatic checklist generation for every EIP inside of the `tests` folder. The checklist is appended to each EIP in the documentation in the "Test Case Reference" section ([#1679](https://github.com/ethereum/execution-spec-tests/pull/1679), [#1718](https://github.com/ethereum/execution-spec-tests/pull/1718)).
7375
- 🔀 Add macOS hive development mode workaround to the docs [#1786](https://github.com/ethereum/execution-spec-tests/pull/1786).
7476
- 🔀 Refactor and clean up of exceptions including EOF exceptions within client specific mappers [#1803](https://github.com/ethereum/execution-spec-tests/pull/1803).
77+
- 🔀 Rename `tests/zkevm/` to `tests/benchmark/` and replace the `zkevm` pytest mark with `benchmark` [#1804](https://github.com/ethereum/execution-spec-tests/pull/1804).
7578

7679
### 🧪 Test Cases
7780

@@ -82,7 +85,7 @@ Users can select any of the artifacts depending on their testing needs for their
8285
- ✨ EIP-7823, EIP-7883: Add test cases for ModExp precompile gas-cost updates and input limits on Osaka ([#1579](https://github.com/ethereum/execution-spec-tests/pull/1579), [#1729](https://github.com/ethereum/execution-spec-tests/pull/1729)).
8386
-[EIP-7825](https://eips.ethereum.org/EIPS/eip-7825): Add test cases for the transaction gas limit of 30M gas ([#1711](https://github.com/ethereum/execution-spec-tests/pull/1711)).
8487
-[EIP-7951](https://eips.ethereum.org/EIPS/eip-7951): add test cases for `P256VERIFY` precompile to support secp256r1 curve [#1670](https://github.com/ethereum/execution-spec-tests/pull/1670).
85-
- ✨ Introduce blockchain tests for ZKEVM to cover the scenario of pure ether transfers [#1742](https://github.com/ethereum/execution-spec-tests/pull/1742).
88+
- ✨ Introduce blockchain tests for benchmark to cover the scenario of pure ether transfers [#1742](https://github.com/ethereum/execution-spec-tests/pull/1742).
8689
-[EIP-7934](https://eips.ethereum.org/EIPS/eip-7934): Add test cases for the block RLP max limit of 10MiB ([#1730](https://github.com/ethereum/execution-spec-tests/pull/1730)).
8790
-[EIP-7939](https://eips.ethereum.org/EIPS/eip-7939) Add count leading zeros (CLZ) opcode tests for Osaka ([#1733](https://github.com/ethereum/execution-spec-tests/pull/1733)).
8891
-[EIP-7918](https://eips.ethereum.org/EIPS/eip-7918): Blob base fee bounded by execution cost test cases (initial), includes some adjustments to [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) tests ([#1685](https://github.com/ethereum/execution-spec-tests/pull/1685)).
@@ -109,12 +112,12 @@ A new fork `EOFv1` has additionally been created to fill and consume EOF related
109112
- ✨ Engine API updates for Osaka, add `get_blobs` rpc method ([#1510](https://github.com/ethereum/execution-spec-tests/pull/1510)).
110113
- ✨ The EIP Version checker has been moved from `fill` and `execute` to it's own command-line tool `check_eip_versions` that gets ran daily as a Github Action ([#1537](https://github.com/ethereum/execution-spec-tests/pull/1537)).
111114
- 🔀 Add new `tests/unscheduled` folder, move EOF from Osaka to unscheduled, add `EOFv1` fork name for EOF tests ([#1507](https://github.com/ethereum/execution-spec-tests/pull/1507)).
112-
- ✨ CI features now contain an optional field to skip them from EEST full releases, `zkevm` and EOF features are now feature only ([#1596](https://github.com/ethereum/execution-spec-tests/pull/1596)).
115+
- ✨ CI features now contain an optional field to skip them from EEST full releases, `benchmark` and EOF features are now feature only ([#1596](https://github.com/ethereum/execution-spec-tests/pull/1596)).
113116
- 🐞 Don't attempt to install `solc` via `solc-select` on ARM (official Linux ARM builds of `solc` are not available at the time of writing, cf [ethereum/solidity#11351](https://github.com/ethereum/solidity/issues/11351)) and add a version sanity check ([#1556](https://github.com/ethereum/execution-spec-tests/pull/1556)).
114117

115118
### 🧪 Test Cases
116119

117-
- 🔀 Automatically apply the `zkevm` marker to all tests under `./tests/zkevm/` and `./tests/prague/eip2537_bls_12_381_precompiles/` via conftest configuration ([#1534](https://github.com/ethereum/execution-spec-tests/pull/1534)).
120+
- 🔀 Automatically apply the `benchmark` marker to all tests under `./tests/benchmark/` and `./tests/prague/eip2537_bls_12_381_precompiles/` via conftest configuration ([#1534](https://github.com/ethereum/execution-spec-tests/pull/1534)).
118121
- ✨ Port [calldataload](https://github.com/ethereum/tests/blob/ae4791077e8fcf716136e70fe8392f1a1f1495fb/src/GeneralStateTestsFiller/VMTests/vmTests/calldatacopyFiller.yml) and [calldatasize](https://github.com/ethereum/tests/blob/81862e4848585a438d64f911a19b3825f0f4cd95/src/GeneralStateTestsFiller/VMTests/vmTests/calldatasizeFiller.yml) tests ([#1236](https://github.com/ethereum/execution-spec-tests/pull/1236)).
119122

120123
## [v4.4.0](https://github.com/ethereum/execution-spec-tests/releases/tag/v4.4.0) - 2025-04-29
@@ -131,9 +134,9 @@ The tests have been filled using the new static test filler introduced in [#1336
131134

132135
Users can expect that all tests currently living in [ethereum/tests](https://github.com/ethereum/tests/tree/develop/src) should eventually make its way into [`./tests/static`](https://github.com/ethereum/execution-spec-tests/tree/main/tests/static) and can rely that these tests, filled for new forks even, will be included in `fixtures_static.tar.gz`.
133136

134-
#### `fixtures_zkevm`
137+
#### `fixtures_benchmark`
135138

136-
Another new fixture tarball has been included in this release: `fixtures_zkevm.tar.gz`.
139+
Another new fixture tarball has been included in this release: `fixtures_benchmark.tar.gz`.
137140

138141
Includes tests that are tailored specifically to test the execution layer proof generators.
139142

docs/getting_started/code_standards.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ Code pushed to @ethereum/execution-spec-tests must fulfill the following checks
1212
| Typecheck | `uvx --with=tox-uv tox -e typecheck` | Objects that provide typehints pass type-checking via `mypy`. |
1313
| Framework unit tests | `uvx --with=tox-uv tox -e pytest` | All framework unit tests must execute correctly. |
1414
| EL Client test cases | `uvx --with=tox-uv tox -e tests-deployed` | All client test cases for deployed forks can be generated. |
15-
| zkEVM EL Test cases | `uvx --with=tox-uv tox -e tests-deployed-zkevm` | All client test cases specific to zkEVMs for deployed forks can be generated. |
15+
| Benchmark EL Test cases | `uvx --with=tox-uv tox -e tests-deployed-benchmark` | All client test cases specific to benchmarks for deployed forks can be generated. |
1616
| HTML doc build | `uvx --with=tox-uv tox -e mkdocs` | Documentation generated without warnings. |
1717
| Spellcheck | `uvx --with=tox-uv tox -e spellcheck` | Code and documentation spell-check using codespell. |
1818
| Markdown lint | `uvx --with=tox-uv tox -e markdownlint` | Markdown lint (requires [additional dependency](code_standards_details.md#additional-dependencies)). |

docs/running_tests/releases.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ These releases are tagged using the format `<pre_release_name>@vX.Y.Z`.
4646
Examples:
4747

4848
- [`fusaka-devnet-1@v1.0.0`](https://github.com/ethereum/execution-spec-tests/releases/tag/fusaka-devnet-1%40v1.0.0) - this fixture release contains tests adhering to the [Fusaka Devnet 1 spec](https://notes.ethereum.org/@ethpandaops/fusaka-devnet-1).
49-
- [`zkevm@v1.0.0`](https://github.com/ethereum/execution-spec-tests/releases/tag/zkevm%40v0.1.0) - this fixture release contains tests specifically aimed at testing zkEVMs.
49+
- [`benchmark@v1.0.0`](https://github.com/ethereum/execution-spec-tests/releases/tag/benchmark%40v1.0.0) - this fixture release contains tests specifically aimed at benchmarking EVMs.
5050

5151
Devnet releases should be treated as WIP and may not yet contain full test coverage (or even coverage for all EIPs). The coverage provided by these releases is detailed in the corresponding release notes.
5252

src/ethereum_test_specs/base.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -161,8 +161,8 @@ def is_tx_gas_heavy_test(self) -> bool:
161161
if self._request is not None and hasattr(self._request, "node"):
162162
node = self._request.node
163163
has_slow_marker = node.get_closest_marker("slow") is not None
164-
has_zkevm_marker = node.get_closest_marker("zkevm") is not None
165-
return has_slow_marker or has_zkevm_marker
164+
has_benchmark_marker = node.get_closest_marker("benchmark") is not None
165+
return has_slow_marker or has_benchmark_marker
166166
return False
167167

168168
def is_exception_test(self) -> bool | None:

src/pytest_plugins/shared/execute_fill.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ def pytest_configure(config: pytest.Config):
8383
)
8484
config.addinivalue_line(
8585
"markers",
86-
"zkevm: Tests that are relevant to zkEVM.",
86+
"benchmark: Tests relevant to benchmarking EVMs.",
8787
)
8888
config.addinivalue_line(
8989
"markers",
File renamed without changes.
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
"""Pytest configuration for zkEVM tests."""
1+
"""Pytest configuration for benchmark tests."""
22

33
from pathlib import Path
44

55
import pytest
66

77

88
def pytest_collection_modifyitems(config, items):
9-
"""Add the `zkevm` marker to all tests under `./tests/zkevm`."""
9+
"""Add the `benchmark` marker to all tests under `./tests/benchmark`."""
1010
for item in items:
1111
if Path(__file__).parent in Path(item.fspath).parents:
12-
item.add_marker(pytest.mark.zkevm)
12+
item.add_marker(pytest.mark.benchmark)

0 commit comments

Comments
 (0)