Skip to content

test_rjumpv_truncated()

Documentation for tests/osaka/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_truncated@49a16fac.

Generate fixtures for these test cases for Osaka with:

fill -v tests/osaka/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py::test_rjumpv_truncated --fork Osaka

EOF1I4200_0028/29/30 (Invalid) EOF code containing truncated RJUMPV.

Source code in tests/osaka/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpv.py
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
@pytest.mark.parametrize(
    "branches",
    [1, 2, 256],
)
@pytest.mark.parametrize(
    "byte_count_last_branch",
    [0, 1],
)
def test_rjumpv_truncated(
    eof_test: EOFTestFiller,
    branches: int,
    byte_count_last_branch: int,
):
    """EOF1I4200_0028/29/30 (Invalid) EOF code containing truncated RJUMPV."""
    rjumpv_bytes = int.to_bytes(branches - 1, 1, "big")
    rjumpv_bytes += b"\0" * ((2 * (branches - 1)) + byte_count_last_branch)

    eof_test(
        container=Container.Code(code=Op.PUSH1(1) + Op.RJUMPV[rjumpv_bytes]),
        expect_exception=EOFException.TRUNCATED_INSTRUCTION,
    )

Parametrized Test Cases

The interactive table below is also available as a standalone page.

Test ID (Abbreviated) byte_count_last_branch branches
...fork_Osaka-eof_test-byte_count_last_branch_0-branches_1 0 1
...fork_Osaka-eof_test-byte_count_last_branch_0-branches_2 0 2
...fork_Osaka-eof_test-byte_count_last_branch_0-branches_256 0 256
...fork_Osaka-eof_test-byte_count_last_branch_1-branches_1 1 1
...fork_Osaka-eof_test-byte_count_last_branch_1-branches_2 1 2
...fork_Osaka-eof_test-byte_count_last_branch_1-branches_256 1 256