Skip to content

test_jumpf_self_stack_overflow()

Documentation for tests/osaka/eip7692_eof_v1/eip6206_jumpf/test_jumpf_validation.py::test_jumpf_self_stack_overflow@3719e927.

Generate fixtures for these test cases for Osaka with:

fill -v tests/osaka/eip7692_eof_v1/eip6206_jumpf/test_jumpf_validation.py::test_jumpf_self_stack_overflow --fork Osaka

Test JUMPF instruction jumping to itself causing validation time stack overflow.

Source code in tests/osaka/eip7692_eof_v1/eip6206_jumpf/test_jumpf_validation.py
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
@pytest.mark.parametrize("stack_height", [512, 513, 1023])
def test_jumpf_self_stack_overflow(eof_test: EOFTestFiller, stack_height: int):
    """Test JUMPF instruction jumping to itself causing validation time stack overflow."""
    container = Container(
        sections=[
            Section.Code(
                code=(Op.PUSH0 * stack_height) + Op.JUMPF[0],
                max_stack_height=stack_height,
            ),
        ],
    )
    stack_overflow = stack_height > MAX_RUNTIME_STACK_HEIGHT // 2
    eof_test(
        container=container,
        expect_exception=EOFException.STACK_OVERFLOW if stack_overflow else None,
    )

Parametrized Test Cases

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

Test ID (Abbreviated) stack_height
...fork_Osaka-eof_test-stack_height_512 512
...fork_Osaka-eof_test-stack_height_513 513
...fork_Osaka-eof_test-stack_height_1023 1023
...fork_Osaka-state_test_from_eof_test-stack_height_512 512
...fork_Osaka-state_test_from_eof_test-stack_height_513 513
...fork_Osaka-state_test_from_eof_test-stack_height_1023 1023
...fork_Osaka-blockchain_test_from_eof_test-stack_height_512 512
...fork_Osaka-blockchain_test_from_eof_test-stack_height_513 513
...fork_Osaka-blockchain_test_from_eof_test-stack_height_1023 1023