Skip to content

test_returning_section_not_returning()

Documentation for tests/osaka/eip7692_eof_v1/eip6206_jumpf/test_nonreturning_validation.py::test_returning_section_not_returning@bc691d13.

Generate fixtures for these test cases for Osaka with:

fill -v tests/osaka/eip7692_eof_v1/eip6206_jumpf/test_nonreturning_validation.py::test_returning_section_not_returning --fork Osaka

Test EOF validation failing due to returning section with no RETF or JUMPF-to-returning.

Source code in tests/osaka/eip7692_eof_v1/eip6206_jumpf/test_nonreturning_validation.py
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
@pytest.mark.parametrize(
    "code_section",
    [
        pytest.param(Section.Code(Op.STOP, code_outputs=0), id="stop0"),
        pytest.param(Section.Code(Op.PUSH0 + Op.STOP, code_outputs=1), id="stop1"),
        pytest.param(Section.Code(Op.INVALID, code_outputs=0), id="invalid0"),
        pytest.param(Section.Code(Op.PUSH0 + Op.INVALID, code_outputs=1), id="invalid1"),
        pytest.param(Section.Code(Op.RETURN(0, 0), code_outputs=0), id="return0"),
        pytest.param(Section.Code(Op.PUSH0 + Op.RETURN(0, 0), code_outputs=1), id="return1"),
        pytest.param(Section.Code(Op.REVERT(0, 0), code_outputs=0), id="revert0"),
        pytest.param(Section.Code(Op.PUSH0 + Op.REVERT(0, 0), code_outputs=1), id="revert1"),
        pytest.param(Section.Code(Op.RJUMP[-3], code_outputs=0), id="rjump0"),
        pytest.param(Section.Code(Op.PUSH0 + Op.RJUMP[-3], code_outputs=1), id="rjump1"),
    ],
)
def test_returning_section_not_returning(eof_test: EOFTestFiller, code_section: Section):
    """Test EOF validation failing due to returning section with no RETF or JUMPF-to-returning."""
    eof_test(
        container=Container(
            sections=[
                Section.Code(Op.CALLF[1] + Op.STOP, max_stack_height=code_section.code_outputs),
                code_section,
            ],
            validity_error=EOFException.INVALID_NON_RETURNING_FLAG,
        ),
    )

Parametrized Test Cases

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

Test ID (Abbreviated) code_section
...fork_Osaka-eof_test-stop0 data=b'\x00' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=0 max_stack_increase=0 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-eof_test-stop1 data=b'_\x00' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=1 max_stack_increase=1 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-eof_test-invalid0 data=b'\xfe' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=0 max_stack_increase=0 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-eof_test-invalid1 data=b'_\xfe' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=1 max_stack_increase=1 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-eof_test-return0 data=b'`\x00`\x00\xf3' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=0 max_stack_increase=2 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-eof_test-return1 data=b'_`\x00`\x00\xf3' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=1 max_stack_increase=3 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-eof_test-revert0 data=b'`\x00`\x00\xfd' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=0 max_stack_increase=2 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-eof_test-revert1 data=b'_`\x00`\x00\xfd' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=1 max_stack_increase=3 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-eof_test-rjump0 data=b'\xe0\xff\xfd' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=0 max_stack_increase=0 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-eof_test-rjump1 data=b'_\xe0\xff\xfd' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=1 max_stack_increase=1 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-state_test_from_eof_test-stop0 data=b'\x00' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=0 max_stack_increase=0 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-state_test_from_eof_test-stop1 data=b'_\x00' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=1 max_stack_increase=1 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-state_test_from_eof_test-invalid0 data=b'\xfe' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=0 max_stack_increase=0 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-state_test_from_eof_test-invalid1 data=b'_\xfe' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=1 max_stack_increase=1 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-state_test_from_eof_test-return0 data=b'`\x00`\x00\xf3' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=0 max_stack_increase=2 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-state_test_from_eof_test-return1 data=b'_`\x00`\x00\xf3' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=1 max_stack_increase=3 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-state_test_from_eof_test-revert0 data=b'`\x00`\x00\xfd' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=0 max_stack_increase=2 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-state_test_from_eof_test-revert1 data=b'_`\x00`\x00\xfd' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=1 max_stack_increase=3 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-state_test_from_eof_test-rjump0 data=b'\xe0\xff\xfd' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=0 max_stack_increase=0 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-state_test_from_eof_test-rjump1 data=b'_\xe0\xff\xfd' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=1 max_stack_increase=1 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-blockchain_test_from_eof_test-stop0 data=b'\x00' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=0 max_stack_increase=0 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-blockchain_test_from_eof_test-stop1 data=b'_\x00' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=1 max_stack_increase=1 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-blockchain_test_from_eof_test-invalid0 data=b'\xfe' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=0 max_stack_increase=0 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-blockchain_test_from_eof_test-invalid1 data=b'_\xfe' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=1 max_stack_increase=1 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-blockchain_test_from_eof_test-return0 data=b'`\x00`\x00\xf3' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=0 max_stack_increase=2 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-blockchain_test_from_eof_test-return1 data=b'_`\x00`\x00\xf3' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=1 max_stack_increase=3 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-blockchain_test_from_eof_test-revert0 data=b'`\x00`\x00\xfd' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=0 max_stack_increase=2 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-blockchain_test_from_eof_test-revert1 data=b'_`\x00`\x00\xfd' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=1 max_stack_increase=3 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-blockchain_test_from_eof_test-rjump0 data=b'\xe0\xff\xfd' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=0 max_stack_increase=0 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False
...fork_Osaka-blockchain_test_from_eof_test-rjump1 data=b'_\xe0\xff\xfd' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=1 max_stack_increase=1 max_stack_height=None auto_max_stack_height=False auto_code_inputs_outputs=False skip_header_listing=False skip_body_listing=False skip_types_body_listing=False skip_types_header_listing=False