Skip to content

test_rjump_unreachable_code()

Documentation for tests/osaka/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py::test_rjump_unreachable_code@3719e927.

Generate fixtures for these test cases for Osaka with:

fill -v tests/osaka/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py::test_rjump_unreachable_code --fork Osaka

EOF code containing instructions skipped by RJUMP.

Source code in tests/osaka/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
@pytest.mark.parametrize(
    "unreachable_op",
    [Op.STOP, Op.PUSH1[0], Op.PUSH2[0], Op.RJUMP[-3], Op.RJUMP[0], Op.INVALID],
)
@pytest.mark.parametrize(
    "terminating_op",
    [Op.STOP, Op.RJUMP[-3], Op.INVALID],
)
def test_rjump_unreachable_code(
    eof_test: EOFTestFiller,
    unreachable_op: Op,
    terminating_op: Op,
):
    """EOF code containing instructions skipped by RJUMP."""
    container = Container.Code(
        code=(Op.RJUMP[len(unreachable_op)] + unreachable_op + terminating_op)
    )
    eof_test(
        container=container,
        expect_exception=EOFException.UNREACHABLE_INSTRUCTIONS,
    )

Parametrized Test Cases

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

Test ID (Abbreviated) terminating_op unreachable_op
...fork_Osaka-eof_test-terminating_op_STOP-unreachable_op_STOP STOP STOP
...fork_Osaka-eof_test-terminating_op_STOP-unreachable_op_PUSH1_0x00 STOP PUSH1_0x00
...fork_Osaka-eof_test-terminating_op_STOP-unreachable_op_PUSH2_0x0000 STOP PUSH2_0x0000
...fork_Osaka-eof_test-terminating_op_STOP-unreachable_op_RJUMP_0xfffd STOP RJUMP_0xfffd
...fork_Osaka-eof_test-terminating_op_STOP-unreachable_op_RJUMP_0x0000 STOP RJUMP_0x0000
...fork_Osaka-eof_test-terminating_op_STOP-unreachable_op_INVALID STOP INVALID
...fork_Osaka-eof_test-terminating_op_RJUMP_0xfffd-unreachable_op_STOP RJUMP_0xfffd STOP
...fork_Osaka-eof_test-terminating_op_RJUMP_0xfffd-unreachable_op_PUSH1_0x00 RJUMP_0xfffd PUSH1_0x00
...fork_Osaka-eof_test-terminating_op_RJUMP_0xfffd-unreachable_op_PUSH2_0x0000 RJUMP_0xfffd PUSH2_0x0000
...fork_Osaka-eof_test-terminating_op_RJUMP_0xfffd-unreachable_op_RJUMP_0xfffd RJUMP_0xfffd RJUMP_0xfffd
...fork_Osaka-eof_test-terminating_op_RJUMP_0xfffd-unreachable_op_RJUMP_0x0000 RJUMP_0xfffd RJUMP_0x0000
...fork_Osaka-eof_test-terminating_op_RJUMP_0xfffd-unreachable_op_INVALID RJUMP_0xfffd INVALID
...fork_Osaka-eof_test-terminating_op_INVALID-unreachable_op_STOP INVALID STOP
...fork_Osaka-eof_test-terminating_op_INVALID-unreachable_op_PUSH1_0x00 INVALID PUSH1_0x00
...fork_Osaka-eof_test-terminating_op_INVALID-unreachable_op_PUSH2_0x0000 INVALID PUSH2_0x0000
...fork_Osaka-eof_test-terminating_op_INVALID-unreachable_op_RJUMP_0xfffd INVALID RJUMP_0xfffd
...fork_Osaka-eof_test-terminating_op_INVALID-unreachable_op_RJUMP_0x0000 INVALID RJUMP_0x0000
...fork_Osaka-eof_test-terminating_op_INVALID-unreachable_op_INVALID INVALID INVALID
...fork_Osaka-state_test_from_eof_test-terminating_op_STOP-unreachable_op_STOP STOP STOP
...fork_Osaka-state_test_from_eof_test-terminating_op_STOP-unreachable_op_PUSH1_0x00 STOP PUSH1_0x00
...fork_Osaka-state_test_from_eof_test-terminating_op_STOP-unreachable_op_PUSH2_0x0000 STOP PUSH2_0x0000
...fork_Osaka-state_test_from_eof_test-terminating_op_STOP-unreachable_op_RJUMP_0xfffd STOP RJUMP_0xfffd
...fork_Osaka-state_test_from_eof_test-terminating_op_STOP-unreachable_op_RJUMP_0x0000 STOP RJUMP_0x0000
...fork_Osaka-state_test_from_eof_test-terminating_op_STOP-unreachable_op_INVALID STOP INVALID
...fork_Osaka-state_test_from_eof_test-terminating_op_RJUMP_0xfffd-unreachable_op_STOP RJUMP_0xfffd STOP
...fork_Osaka-state_test_from_eof_test-terminating_op_RJUMP_0xfffd-unreachable_op_PUSH1_0x00 RJUMP_0xfffd PUSH1_0x00
...fork_Osaka-state_test_from_eof_test-terminating_op_RJUMP_0xfffd-unreachable_op_PUSH2_0x0000 RJUMP_0xfffd PUSH2_0x0000
...fork_Osaka-state_test_from_eof_test-terminating_op_RJUMP_0xfffd-unreachable_op_RJUMP_0xfffd RJUMP_0xfffd RJUMP_0xfffd
...fork_Osaka-state_test_from_eof_test-terminating_op_RJUMP_0xfffd-unreachable_op_RJUMP_0x0000 RJUMP_0xfffd RJUMP_0x0000
...fork_Osaka-state_test_from_eof_test-terminating_op_RJUMP_0xfffd-unreachable_op_INVALID RJUMP_0xfffd INVALID
...fork_Osaka-state_test_from_eof_test-terminating_op_INVALID-unreachable_op_STOP INVALID STOP
...fork_Osaka-state_test_from_eof_test-terminating_op_INVALID-unreachable_op_PUSH1_0x00 INVALID PUSH1_0x00
...fork_Osaka-state_test_from_eof_test-terminating_op_INVALID-unreachable_op_PUSH2_0x0000 INVALID PUSH2_0x0000
...fork_Osaka-state_test_from_eof_test-terminating_op_INVALID-unreachable_op_RJUMP_0xfffd INVALID RJUMP_0xfffd
...fork_Osaka-state_test_from_eof_test-terminating_op_INVALID-unreachable_op_RJUMP_0x0000 INVALID RJUMP_0x0000
...fork_Osaka-state_test_from_eof_test-terminating_op_INVALID-unreachable_op_INVALID INVALID INVALID
...fork_Osaka-blockchain_test_from_eof_test-terminating_op_STOP-unreachable_op_STOP STOP STOP
...fork_Osaka-blockchain_test_from_eof_test-terminating_op_STOP-unreachable_op_PUSH1_0x00 STOP PUSH1_0x00
...fork_Osaka-blockchain_test_from_eof_test-terminating_op_STOP-unreachable_op_PUSH2_0x0000 STOP PUSH2_0x0000
...fork_Osaka-blockchain_test_from_eof_test-terminating_op_STOP-unreachable_op_RJUMP_0xfffd STOP RJUMP_0xfffd
...fork_Osaka-blockchain_test_from_eof_test-terminating_op_STOP-unreachable_op_RJUMP_0x0000 STOP RJUMP_0x0000
...fork_Osaka-blockchain_test_from_eof_test-terminating_op_STOP-unreachable_op_INVALID STOP INVALID
...fork_Osaka-blockchain_test_from_eof_test-terminating_op_RJUMP_0xfffd-unreachable_op_STOP RJUMP_0xfffd STOP
...fork_Osaka-blockchain_test_from_eof_test-terminating_op_RJUMP_0xfffd-unreachable_op_PUSH1_0x00 RJUMP_0xfffd PUSH1_0x00
...fork_Osaka-blockchain_test_from_eof_test-terminating_op_RJUMP_0xfffd-unreachable_op_PUSH2_0x0000 RJUMP_0xfffd PUSH2_0x0000
...fork_Osaka-blockchain_test_from_eof_test-terminating_op_RJUMP_0xfffd-unreachable_op_RJUMP_0xfffd RJUMP_0xfffd RJUMP_0xfffd
...fork_Osaka-blockchain_test_from_eof_test-terminating_op_RJUMP_0xfffd-unreachable_op_RJUMP_0x0000 RJUMP_0xfffd RJUMP_0x0000
...fork_Osaka-blockchain_test_from_eof_test-terminating_op_RJUMP_0xfffd-unreachable_op_INVALID RJUMP_0xfffd INVALID
...fork_Osaka-blockchain_test_from_eof_test-terminating_op_INVALID-unreachable_op_STOP INVALID STOP
...fork_Osaka-blockchain_test_from_eof_test-terminating_op_INVALID-unreachable_op_PUSH1_0x00 INVALID PUSH1_0x00
...fork_Osaka-blockchain_test_from_eof_test-terminating_op_INVALID-unreachable_op_PUSH2_0x0000 INVALID PUSH2_0x0000
...fork_Osaka-blockchain_test_from_eof_test-terminating_op_INVALID-unreachable_op_RJUMP_0xfffd INVALID RJUMP_0xfffd
...fork_Osaka-blockchain_test_from_eof_test-terminating_op_INVALID-unreachable_op_RJUMP_0x0000 INVALID RJUMP_0x0000
...fork_Osaka-blockchain_test_from_eof_test-terminating_op_INVALID-unreachable_op_INVALID INVALID INVALID