@pytest.mark.repricing
@pytest.mark.parametrize(
"opcode",
[
pytest.param(Op.PUSH0),
pytest.param(Op.PUSH1),
pytest.param(Op.PUSH2),
pytest.param(Op.PUSH3),
pytest.param(Op.PUSH4),
pytest.param(Op.PUSH5),
pytest.param(Op.PUSH6),
pytest.param(Op.PUSH7),
pytest.param(Op.PUSH8),
pytest.param(Op.PUSH9),
pytest.param(Op.PUSH10),
pytest.param(Op.PUSH11),
pytest.param(Op.PUSH12),
pytest.param(Op.PUSH13),
pytest.param(Op.PUSH14),
pytest.param(Op.PUSH15),
pytest.param(Op.PUSH16),
pytest.param(Op.PUSH17),
pytest.param(Op.PUSH18),
pytest.param(Op.PUSH19),
pytest.param(Op.PUSH20),
pytest.param(Op.PUSH21),
pytest.param(Op.PUSH22),
pytest.param(Op.PUSH23),
pytest.param(Op.PUSH24),
pytest.param(Op.PUSH25),
pytest.param(Op.PUSH26),
pytest.param(Op.PUSH27),
pytest.param(Op.PUSH28),
pytest.param(Op.PUSH29),
pytest.param(Op.PUSH30),
pytest.param(Op.PUSH31),
pytest.param(Op.PUSH32),
],
)
def test_push(
benchmark_test: BenchmarkTestFiller,
opcode: Op,
) -> None:
"""Benchmark PUSH instruction."""
benchmark_test(
target_opcode=opcode,
code_generator=ExtCallGenerator(
attack_block=opcode[1] if opcode.has_data_portion() else opcode
),
)