Skip to content

Commit 3b7db94

Browse files
feat(tests): introduce skip_gas_used_validation flag for flexible gas checks
1 parent e900bf0 commit 3b7db94

3 files changed

Lines changed: 10 additions & 2 deletions

File tree

src/ethereum_test_specs/base.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ class BaseTest(BaseModel):
7373
_gas_optimization_max_gas_limit: int | None = PrivateAttr(None)
7474

7575
expected_benchmark_gas_used: int | None = None
76+
skip_gas_used_validation: bool = False
7677

7778
spec_types: ClassVar[Dict[str, Type["BaseTest"]]] = {}
7879

@@ -117,6 +118,7 @@ def from_test(
117118
tag=base_test.tag,
118119
t8n_dump_dir=base_test.t8n_dump_dir,
119120
expected_benchmark_gas_used=base_test.expected_benchmark_gas_used,
121+
skip_gas_used_validation=base_test.skip_gas_used_validation,
120122
**kwargs,
121123
)
122124
new_instance._request = base_test._request

src/ethereum_test_specs/blockchain.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -576,9 +576,12 @@ def generate_block_data(
576576

577577
if last_block and self._operation_mode == OpMode.BENCHMARKING:
578578
expected_benchmark_gas_used = self.expected_benchmark_gas_used
579+
assert expected_benchmark_gas_used is not None, (
580+
"expected_benchmark_gas_used is not set"
581+
)
579582
gas_used = int(transition_tool_output.result.gas_used)
580583

581-
if expected_benchmark_gas_used is not None:
584+
if not self.skip_gas_used_validation:
582585
assert gas_used == expected_benchmark_gas_used, (
583586
f"gas_used ({gas_used}) does not match expected_benchmark_gas_used "
584587
f"({expected_benchmark_gas_used})"

src/ethereum_test_specs/state.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -366,8 +366,11 @@ def make_state_test_fixture(
366366

367367
if self._operation_mode == OpMode.BENCHMARKING:
368368
expected_benchmark_gas_used = self.expected_benchmark_gas_used
369+
assert expected_benchmark_gas_used is not None, (
370+
"expected_benchmark_gas_used is not set"
371+
)
369372
gas_used = int(transition_tool_output.result.gas_used)
370-
if expected_benchmark_gas_used is not None:
373+
if not self.skip_gas_used_validation:
371374
assert gas_used == expected_benchmark_gas_used, (
372375
f"gas_used ({gas_used}) does not match expected_benchmark_gas_used "
373376
f"({expected_benchmark_gas_used})"

0 commit comments

Comments
 (0)