Skip to content

test_rjumpi_into_push_n()

Documentation for tests/prague/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_into_push_n@verkle@v0.0.6.

Generate fixtures for these test cases for Pragueeip7692 with:

Pragueeip7692 only:

fill -v tests/prague/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_into_push_n --fork=PragueEIP7692 --evm-bin=/path/to/evm-tool-dev-version

For all forks up to and including Pragueeip7692:

fill -v tests/prague/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py::test_rjumpi_into_push_n --until=PragueEIP7692

EOF1I4200_0024 (Invalid) EOF code containing RJUMPI with target PUSH2+ immediate

Source code in tests/prague/eip7692_eof_v1/eip4200_relative_jumps/test_rjumpi.py
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
@pytest.mark.parametrize(
    "opcode",
    [
        Op.PUSH2,
        Op.PUSH3,
        Op.PUSH4,
        Op.PUSH5,
        Op.PUSH6,
        Op.PUSH7,
        Op.PUSH8,
        Op.PUSH9,
        Op.PUSH10,
        Op.PUSH11,
        Op.PUSH12,
        Op.PUSH13,
        Op.PUSH14,
        Op.PUSH15,
        Op.PUSH16,
        Op.PUSH17,
        Op.PUSH18,
        Op.PUSH19,
        Op.PUSH20,
        Op.PUSH21,
        Op.PUSH22,
        Op.PUSH23,
        Op.PUSH24,
        Op.PUSH25,
        Op.PUSH26,
        Op.PUSH27,
        Op.PUSH28,
        Op.PUSH29,
        Op.PUSH30,
        Op.PUSH31,
        Op.PUSH32,
    ],
)
@pytest.mark.parametrize("jump", [JumpDirection.FORWARD, JumpDirection.BACKWARD])
@pytest.mark.parametrize(
    "data_portion_end",
    [True, False],
    ids=["data_portion_end", "data_portion_start"],
)
def test_rjumpi_into_push_n(
    eof_test: EOFTestFiller,
    opcode: Op,
    jump: JumpDirection,
    data_portion_end: bool,
):
    """EOF1I4200_0024 (Invalid) EOF code containing RJUMPI with target PUSH2+ immediate"""
    data_portion_length = int.from_bytes(opcode, byteorder="big") - 0x5F
    if jump == JumpDirection.FORWARD:
        offset = data_portion_length if data_portion_end else 1
        code = Op.PUSH1(1) + Op.RJUMPI[offset] + opcode[0] + Op.STOP
    else:
        offset = -4 if data_portion_end else -4 - data_portion_length + 1
        code = opcode[0] + Op.RJUMPI[offset] + Op.STOP
    eof_test(
        data=Container(
            sections=[
                Section.Code(code=code),
            ],
        ),
        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,
    )

Parametrized Test Cases

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

Skipped Parameters

For more concise readability, the table below does not list the following parameter values: fork, blockchain_test, state_test, state_test_only, eof_test, eof_state_test.

Test ID data_portion_end jump opcode
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH2 True JumpDirection.FORWARD PUSH2
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH3 True JumpDirection.FORWARD PUSH3
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH4 True JumpDirection.FORWARD PUSH4
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH5 True JumpDirection.FORWARD PUSH5
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH6 True JumpDirection.FORWARD PUSH6
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH7 True JumpDirection.FORWARD PUSH7
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH8 True JumpDirection.FORWARD PUSH8
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH9 True JumpDirection.FORWARD PUSH9
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH10 True JumpDirection.FORWARD PUSH10
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH11 True JumpDirection.FORWARD PUSH11
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH12 True JumpDirection.FORWARD PUSH12
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH13 True JumpDirection.FORWARD PUSH13
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH14 True JumpDirection.FORWARD PUSH14
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH15 True JumpDirection.FORWARD PUSH15
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH16 True JumpDirection.FORWARD PUSH16
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH17 True JumpDirection.FORWARD PUSH17
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH18 True JumpDirection.FORWARD PUSH18
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH19 True JumpDirection.FORWARD PUSH19
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH20 True JumpDirection.FORWARD PUSH20
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH21 True JumpDirection.FORWARD PUSH21
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH22 True JumpDirection.FORWARD PUSH22
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH23 True JumpDirection.FORWARD PUSH23
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH24 True JumpDirection.FORWARD PUSH24
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH25 True JumpDirection.FORWARD PUSH25
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH26 True JumpDirection.FORWARD PUSH26
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH27 True JumpDirection.FORWARD PUSH27
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH28 True JumpDirection.FORWARD PUSH28
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH29 True JumpDirection.FORWARD PUSH29
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH30 True JumpDirection.FORWARD PUSH30
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH31 True JumpDirection.FORWARD PUSH31
data_portion_end-jump_JumpDirection.FORWARD-opcode_PUSH32 True JumpDirection.FORWARD PUSH32
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH2 True JumpDirection.BACKWARD PUSH2
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH3 True JumpDirection.BACKWARD PUSH3
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH4 True JumpDirection.BACKWARD PUSH4
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH5 True JumpDirection.BACKWARD PUSH5
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH6 True JumpDirection.BACKWARD PUSH6
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH7 True JumpDirection.BACKWARD PUSH7
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH8 True JumpDirection.BACKWARD PUSH8
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH9 True JumpDirection.BACKWARD PUSH9
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH10 True JumpDirection.BACKWARD PUSH10
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH11 True JumpDirection.BACKWARD PUSH11
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH12 True JumpDirection.BACKWARD PUSH12
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH13 True JumpDirection.BACKWARD PUSH13
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH14 True JumpDirection.BACKWARD PUSH14
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH15 True JumpDirection.BACKWARD PUSH15
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH16 True JumpDirection.BACKWARD PUSH16
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH17 True JumpDirection.BACKWARD PUSH17
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH18 True JumpDirection.BACKWARD PUSH18
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH19 True JumpDirection.BACKWARD PUSH19
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH20 True JumpDirection.BACKWARD PUSH20
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH21 True JumpDirection.BACKWARD PUSH21
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH22 True JumpDirection.BACKWARD PUSH22
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH23 True JumpDirection.BACKWARD PUSH23
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH24 True JumpDirection.BACKWARD PUSH24
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH25 True JumpDirection.BACKWARD PUSH25
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH26 True JumpDirection.BACKWARD PUSH26
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH27 True JumpDirection.BACKWARD PUSH27
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH28 True JumpDirection.BACKWARD PUSH28
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH29 True JumpDirection.BACKWARD PUSH29
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH30 True JumpDirection.BACKWARD PUSH30
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH31 True JumpDirection.BACKWARD PUSH31
data_portion_end-jump_JumpDirection.BACKWARD-opcode_PUSH32 True JumpDirection.BACKWARD PUSH32
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH2 False JumpDirection.FORWARD PUSH2
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH3 False JumpDirection.FORWARD PUSH3
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH4 False JumpDirection.FORWARD PUSH4
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH5 False JumpDirection.FORWARD PUSH5
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH6 False JumpDirection.FORWARD PUSH6
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH7 False JumpDirection.FORWARD PUSH7
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH8 False JumpDirection.FORWARD PUSH8
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH9 False JumpDirection.FORWARD PUSH9
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH10 False JumpDirection.FORWARD PUSH10
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH11 False JumpDirection.FORWARD PUSH11
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH12 False JumpDirection.FORWARD PUSH12
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH13 False JumpDirection.FORWARD PUSH13
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH14 False JumpDirection.FORWARD PUSH14
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH15 False JumpDirection.FORWARD PUSH15
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH16 False JumpDirection.FORWARD PUSH16
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH17 False JumpDirection.FORWARD PUSH17
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH18 False JumpDirection.FORWARD PUSH18
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH19 False JumpDirection.FORWARD PUSH19
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH20 False JumpDirection.FORWARD PUSH20
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH21 False JumpDirection.FORWARD PUSH21
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH22 False JumpDirection.FORWARD PUSH22
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH23 False JumpDirection.FORWARD PUSH23
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH24 False JumpDirection.FORWARD PUSH24
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH25 False JumpDirection.FORWARD PUSH25
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH26 False JumpDirection.FORWARD PUSH26
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH27 False JumpDirection.FORWARD PUSH27
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH28 False JumpDirection.FORWARD PUSH28
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH29 False JumpDirection.FORWARD PUSH29
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH30 False JumpDirection.FORWARD PUSH30
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH31 False JumpDirection.FORWARD PUSH31
data_portion_start-jump_JumpDirection.FORWARD-opcode_PUSH32 False JumpDirection.FORWARD PUSH32
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH2 False JumpDirection.BACKWARD PUSH2
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH3 False JumpDirection.BACKWARD PUSH3
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH4 False JumpDirection.BACKWARD PUSH4
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH5 False JumpDirection.BACKWARD PUSH5
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH6 False JumpDirection.BACKWARD PUSH6
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH7 False JumpDirection.BACKWARD PUSH7
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH8 False JumpDirection.BACKWARD PUSH8
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH9 False JumpDirection.BACKWARD PUSH9
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH10 False JumpDirection.BACKWARD PUSH10
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH11 False JumpDirection.BACKWARD PUSH11
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH12 False JumpDirection.BACKWARD PUSH12
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH13 False JumpDirection.BACKWARD PUSH13
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH14 False JumpDirection.BACKWARD PUSH14
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH15 False JumpDirection.BACKWARD PUSH15
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH16 False JumpDirection.BACKWARD PUSH16
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH17 False JumpDirection.BACKWARD PUSH17
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH18 False JumpDirection.BACKWARD PUSH18
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH19 False JumpDirection.BACKWARD PUSH19
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH20 False JumpDirection.BACKWARD PUSH20
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH21 False JumpDirection.BACKWARD PUSH21
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH22 False JumpDirection.BACKWARD PUSH22
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH23 False JumpDirection.BACKWARD PUSH23
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH24 False JumpDirection.BACKWARD PUSH24
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH25 False JumpDirection.BACKWARD PUSH25
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH26 False JumpDirection.BACKWARD PUSH26
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH27 False JumpDirection.BACKWARD PUSH27
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH28 False JumpDirection.BACKWARD PUSH28
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH29 False JumpDirection.BACKWARD PUSH29
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH30 False JumpDirection.BACKWARD PUSH30
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH31 False JumpDirection.BACKWARD PUSH31
data_portion_start-jump_JumpDirection.BACKWARD-opcode_PUSH32 False JumpDirection.BACKWARD PUSH32