Skip to content

Test RJUMP

Documentation for tests/osaka/eip7692_eof_v1/eip4200_relative_jumps/test_rjump.py@49c766fb.

Generate fixtures for these test cases for Osaka with:

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

EOF JUMPF tests covering stack and code validation rules.

Test Functions Overview

Name Type Cases (Osaka) Description
test_rjump_negative eof_state_test 0 Test for a forward RJUMPI and backward RJUMP
test_rjump_positive_negative eof_state_test 0 EOF1V4200_0001 (Valid) EOF code containing RJUMP (Positive, Negative)
test_rjump_zero eof_state_test 0 EOF1V4200_0002 (Valid) EOF code containing RJUMP (Zero)
test_rjump_maxes eof_state_test 0 EOF1V4200_0003 EOF with RJUMP containing the maximum positive and negative offset (32767)
test_rjump_max_bytecode_size eof_test 1 EOF1V4200_0003 EOF with RJUMP containing the maximum offset that does not exceed the maximum
test_rjump_truncated_rjump eof_test 1 EOF1I4200_0001 (Invalid) EOF code containing truncated RJUMP
test_rjump_truncated_rjump_2 eof_test 1 EOF1I4200_0002 (Invalid) EOF code containing truncated RJUMP
test_rjump_into_header eof_test 1 EOF1I4200_0003 (Invalid) EOF code containing RJUMP with target outside code bounds
test_rjump_before_header eof_test 1 EOF1I4200_0004 (Invalid) EOF code containing RJUMP with target outside code bounds
test_rjump_into_data eof_test 1 EOF1I4200_0005 (Invalid) EOF code containing RJUMP with target outside code bounds
test_rjump_outside_other_section_before eof_test 1 EOF code containing RJUMP with target outside code bounds (prior code section)
test_rjump_outside_other_section_after eof_test 1 EOF code containing RJUMP with target outside code bounds (Subsequent code section)
test_rjump_after_container eof_test 1 EOF1I4200_0006 (Invalid) EOF code containing RJUMP with target outside code bounds
test_rjump_to_code_end eof_test 1 EOF1I4200_0007 (Invalid) EOF code containing RJUMP with target outside code bounds
test_rjump_into_self_data_portion eof_test 2 EOF1I4200_0008 (Invalid) EOF code containing RJUMP with target self RJUMP immediate
test_rjump_into_self_remaining_code eof_test 1 EOF1I4200_0008 (Invalid) EOF code containing RJUMP with target self RJUMP but remaining
test_rjump_into_self eof_test 1 EOF code containing RJUMP with target self RJUMP
test_rjump_into_self_pre_code eof_test 1 EOF code containing RJUMP with target self RJUMP with non-zero stack before RJUMP
test_rjump_into_stack_height_diff eof_test 1 EOF code containing RJUMP with target instruction that causes stack height difference
test_rjump_into_stack_height_diff_2 eof_test 1 EOF code containing RJUMP with target instruction that cause stack height difference
test_rjump_into_stack_underflow eof_test 1 EOF code containing RJUMP with target instruction that cause stack underflow
test_rjump_into_rjump eof_test 1 EOF1I4200_0009 (Invalid) EOF code containing RJUMP with target other RJUMP immediate
test_rjump_into_rjumpi eof_test 1 EOF1I4200_0010 (Invalid) EOF code containing RJUMP with target RJUMPI immediate
test_rjump_into_push_1 eof_test 2 EOF1I4200_0011 (Invalid) EOF code containing RJUMP with target PUSH1 immediate
test_rjump_into_push_n eof_test 124 EOF1I4200_0011 (Invalid) EOF code containing RJUMP with target PUSH2+ immediate
test_rjump_into_rjumpv eof_test 4 EOF1I4200_0012 (Invalid) EOF code containing RJUMP with target RJUMPV immediate
test_rjump_into_callf eof_test 2 EOF1I4200_0013 (Invalid) EOF code containing RJUMP with target CALLF immediate
test_rjump_into_dupn eof_test 1 EOF code containing RJUMP with target DUPN immediate
test_rjump_into_swapn eof_test 1 EOF code containing RJUMP with target SWAPN immediate
test_rjump_into_exchange eof_test 1 EOF code containing RJUMP with target EXCHANGE immediate
test_rjump_into_eofcreate eof_test 1 EOF code containing RJUMP with target EOFCREATE immediate
test_rjump_into_returncontract eof_test 1 EOF code containing RJUMP with target RETURNCONTRACT immediate
test_rjump_unreachable_code eof_test 1 EOF code containing instructions skipped by RJUMP
test_rjump_backwards_reference_only eof_test 1 EOF code containing instructions only reachable by backwards RJUMP
test_rjump_backwards_illegal_stack_height eof_test 1 Invalid backward jump, found via fuzzing coverage
test_rjump_backwards_infinite_loop eof_test 1 Validate that a backwards RJUMP as terminal operation is valid