Skip to content

test_worst_msize()

Documentation for tests/benchmark/test_worst_compute.py::test_worst_msize@88e9fb8f.

Generate fixtures for these test cases for Osaka with:

fill -v tests/benchmark/test_worst_compute.py::test_worst_msize -m benchmark

Test running a block with as many MSIZE opcodes as possible.

The mem_size parameter indicates by how much the memory is expanded.

Source code in tests/benchmark/test_worst_compute.py
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
@pytest.mark.parametrize("mem_size", [0, 1, 1_000, 100_000, 1_000_000])
def test_worst_msize(
    benchmark_test: BenchmarkTestFiller,
    mem_size: int,
) -> None:
    """
    Test running a block with as many MSIZE opcodes as possible.

    The `mem_size` parameter indicates by how much the memory is expanded.
    """
    benchmark_test(
        code_generator=ExtCallGenerator(
            setup=Op.MLOAD(Op.SELFBALANCE) + Op.POP,
            attack_block=Op.MSIZE,
            contract_balance=mem_size,
        ),
    )

Parametrized Test Cases

This test case is only parametrized by fork.

Test ID (Abbreviated) mem_size
...fork_Prague-blockchain_test-mem_size_0 0
...fork_Prague-blockchain_test-mem_size_1 1
...fork_Prague-blockchain_test-mem_size_1000 1000
...fork_Prague-blockchain_test-mem_size_100000 100000
...fork_Prague-blockchain_test-mem_size_1000000 1000000
...fork_Osaka-blockchain_test-mem_size_0 0
...fork_Osaka-blockchain_test-mem_size_1 1
...fork_Osaka-blockchain_test-mem_size_1000 1000
...fork_Osaka-blockchain_test-mem_size_100000 100000
...fork_Osaka-blockchain_test-mem_size_1000000 1000000