Skip to content

test_rjump_into_push_n()

Documentation for tests/osaka/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py::test_rjump_into_push_n@49a16fac.

Generate fixtures for these test cases for Osaka with:

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

EOF1I4200_0011 (Invalid) EOF code containing RJUMP with target PUSH2+ immediate.

Source code in tests/osaka/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
@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_rjump_into_push_n(
    eof_test: EOFTestFiller,
    opcode: Op,
    jump: JumpDirection,
    data_portion_end: bool,
):
    """EOF1I4200_0011 (Invalid) EOF code containing RJUMP 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.RJUMP[offset] + opcode[0] + Op.STOP
    else:
        offset = -4 if data_portion_end else -4 - data_portion_length + 1
        code = opcode[0] + Op.RJUMP[offset]
    eof_test(
        container=Container.Code(code),
        expect_exception=EOFException.INVALID_RJUMP_DESTINATION,
    )

Parametrized Test Cases

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

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