Skip to content

test_first_section_returning()

Documentation for tests/osaka/eip7692_eof_v1/eip6206_jumpf/test_nonreturning_validation.py::test_first_section_returning@49a16fac.

Generate fixtures for these test cases for Osaka with:

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

Test EOF validation failing because the first section is not non-returning.

Source code in tests/osaka/eip7692_eof_v1/eip6206_jumpf/test_nonreturning_validation.py
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
@pytest.mark.parametrize(
    "code_section",
    [
        pytest.param(Section.Code(Op.STOP, code_outputs=0), id="stop"),
        pytest.param(Section.Code(Op.INVALID, code_outputs=0), id="invalid0"),
        pytest.param(
            Section.Code(Op.ADDRESS + Op.POP + Op.INVALID, code_outputs=0), id="invalid1"
        ),
        pytest.param(Section.Code(Op.RETURN(0, 0), code_outputs=0), id="return"),
        pytest.param(Section.Code(Op.RETF, code_outputs=0), id="retf0"),
        pytest.param(Section.Code(Op.PUSH0 + Op.RETF, code_outputs=1), id="retf1"),
    ],
)
def test_first_section_returning(eof_test: EOFTestFiller, code_section: Section):
    """Test EOF validation failing because the first section is not non-returning."""
    eof_test(
        container=Container(
            sections=[code_section], validity_error=EOFException.INVALID_FIRST_SECTION_TYPE
        )
    )

Parametrized Test Cases

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

Test ID (Abbreviated) code_section
...fork_Osaka-eof_test-stop data=b'\x00' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=0 max_stack_height=0 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_height=0 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'0P\xfe' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=0 max_stack_height=1 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-return data=b'`\x00`\x00\xf3' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=0 max_stack_height=2 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-retf0 data=b'\xe4' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=0 max_stack_height=0 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-retf1 data=b'_\xe4' custom_size=0 kind= force_type_listing=False code_inputs=0 code_outputs=1 max_stack_height=1 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