ref-fvm
ref-fvm copied to clipboard
FEVM | Eth Compliance Test | 38-stReturnDataTest | use-case Failures
Following use-cases are failed.
- Hit with error
EVM_CONTRACT_UNDEFINED_INSTRUCTION(ExitCode::35)
| Test ID | Use-Case |
|---|---|
| TID-38-05 | clearReturnBuffer |
| TID-38-07 | modexp_modsize0_returndatasize |
| TID-38-09 | returndatacopy_after_failing_callcode |
| TID-38-13 | returndatacopy_after_successful_callcode |
| TID-38-28 | returndatasize_after_failing_callcode |
| TID-38-32 | returndatasize_after_successful_callcode |
| TID-38-39 | revertRetDataSize |
| TID-38-40 | subcallReturnMoreThenExpected |
- Hit with error
EVM_CONTRACT_ILLEGAL_MEMORY_ACCESS(ExitCode::38)
| Test ID | Use-Case |
|---|---|
| TID-38-16 | returndatacopy_afterFailing_create |
| TID-38-11 | returndatacopy_after_failing_staticcall |
| TID-38-12 | returndatacopy_after_revert_in_staticcall |
| TID-38-14 | returndatacopy_after_successful_delegatecall |
| TID-38-15 | returndatacopy_after_successful_staticcall |
| TID-38-18 | returndatacopy_following_create |
| TID-38-19 | returndatacopy_following_failing_call |
| TID-38-21 | returndatacopy_following_revert_in_create |
| TID-38-22 | returndatacopy_following_successful_create |
| TID-38-23 | returndatacopy_following_too_big_transfer |
| TID-38-24 | returndatacopy_initial |
| TID-38-25 | returndatacopy_initial_256 |
| TID-38-26 | returndatacopy_initial_big_sum |
| TID-38-27 | returndatacopy_overrun |
| TID-38-41 | tooLongReturnDataCopy |
=== KO Status ===
Count :: 23
{
"returndatacopy_overrun.json::returndatacopy_overrun": [
"Istanbul | 0 | ExitCode { value: 38 }",
"Berlin | 0 | ExitCode { value: 38 }",
"London | 0 | ExitCode { value: 38 }",
"Merge | 0 | ExitCode { value: 38 }",
],
"returndatacopy_following_too_big_transfer.json::returndatacopy_following_too_big_transfer": [
"Istanbul | 0 | ExitCode { value: 38 }",
"Berlin | 0 | ExitCode { value: 38 }",
"London | 0 | ExitCode { value: 38 }",
"Merge | 0 | ExitCode { value: 38 }",
],
"returndatacopy_following_successful_create.json::returndatacopy_following_successful_create": [
"Istanbul | 0 | ExitCode { value: 38 }",
"Berlin | 0 | ExitCode { value: 38 }",
"London | 0 | ExitCode { value: 38 }",
"Merge | 0 | ExitCode { value: 38 }",
],
"returndatacopy_after_successful_staticcall.json::returndatacopy_after_successful_staticcall": [
"Istanbul | 0 | ExitCode { value: 38 }",
"Berlin | 0 | ExitCode { value: 38 }",
"London | 0 | ExitCode { value: 38 }",
"Merge | 0 | ExitCode { value: 38 }",
],
"returndatasize_after_failing_callcode.json::returndatasize_after_failing_callcode": [
"Istanbul | 0 | ExitCode { value: 35 }",
"Berlin | 0 | ExitCode { value: 35 }",
"London | 0 | ExitCode { value: 35 }",
"Merge | 0 | ExitCode { value: 35 }",
],
"returndatacopy_following_failing_call.json::returndatacopy_following_failing_call": [
"Istanbul | 0 | ExitCode { value: 38 }",
"Berlin | 0 | ExitCode { value: 38 }",
"London | 0 | ExitCode { value: 38 }",
"Merge | 0 | ExitCode { value: 38 }",
],
"returndatacopy_after_revert_in_staticcall.json::returndatacopy_after_revert_in_staticcall": [
"Istanbul | 0 | ExitCode { value: 38 }",
"Berlin | 0 | ExitCode { value: 38 }",
"London | 0 | ExitCode { value: 38 }",
"Merge | 0 | ExitCode { value: 38 }",
],
"returndatacopy_initial_big_sum.json::returndatacopy_initial_big_sum": [
"Istanbul | 0 | ExitCode { value: 38 }",
"Berlin | 0 | ExitCode { value: 38 }",
"London | 0 | ExitCode { value: 38 }",
"Merge | 0 | ExitCode { value: 38 }",
],
"returndatacopy_following_create.json::returndatacopy_following_create": [
"Istanbul | 0 | ExitCode { value: 38 }",
"Berlin | 0 | ExitCode { value: 38 }",
"London | 0 | ExitCode { value: 38 }",
"Merge | 0 | ExitCode { value: 38 }",
],
"subcallReturnMoreThenExpected.json::subcallReturnMoreThenExpected": [
"Istanbul | 0 | ExitCode { value: 35 }",
"Berlin | 0 | ExitCode { value: 35 }",
"London | 0 | ExitCode { value: 35 }",
"Merge | 0 | ExitCode { value: 35 }",
],
"revertRetDataSize.json::revertRetDataSize": [
"Istanbul | 1 | ExitCode { value: 35 }",
"Istanbul | 7 | ExitCode { value: 35 }",
"Istanbul | 13 | ExitCode { value: 35 }",
"Istanbul | 19 | ExitCode { value: 35 }",
"Istanbul | 25 | ExitCode { value: 35 }",
"Istanbul | 31 | ExitCode { value: 35 }",
"Berlin | 1 | ExitCode { value: 35 }",
"Berlin | 7 | ExitCode { value: 35 }",
"Berlin | 13 | ExitCode { value: 35 }",
"Berlin | 19 | ExitCode { value: 35 }",
"Berlin | 25 | ExitCode { value: 35 }",
"Berlin | 31 | ExitCode { value: 35 }",
"London | 1 | ExitCode { value: 35 }",
"London | 7 | ExitCode { value: 35 }",
"London | 13 | ExitCode { value: 35 }",
"London | 19 | ExitCode { value: 35 }",
"London | 25 | ExitCode { value: 35 }",
"London | 31 | ExitCode { value: 35 }",
"Merge | 1 | ExitCode { value: 35 }",
"Merge | 7 | ExitCode { value: 35 }",
"Merge | 13 | ExitCode { value: 35 }",
"Merge | 19 | ExitCode { value: 35 }",
"Merge | 25 | ExitCode { value: 35 }",
"Merge | 31 | ExitCode { value: 35 }",
],
"tooLongReturnDataCopy.json::tooLongReturnDataCopy": [
"London | 1 | ExitCode { value: 38 }",
"London | 4 | ExitCode { value: 38 }",
"London | 6 | ExitCode { value: 38 }",
"London | 8 | ExitCode { value: 38 }",
"London | 9 | ExitCode { value: 38 }",
"London | 10 | ExitCode { value: 38 }",
"London | 11 | ExitCode { value: 38 }",
"London | 13 | ExitCode { value: 38 }",
"London | 16 | ExitCode { value: 38 }",
"London | 18 | ExitCode { value: 38 }",
"London | 20 | ExitCode { value: 38 }",
"London | 21 | ExitCode { value: 38 }",
"London | 22 | ExitCode { value: 38 }",
"London | 23 | ExitCode { value: 38 }",
"Merge | 1 | ExitCode { value: 38 }",
"Merge | 4 | ExitCode { value: 38 }",
"Merge | 6 | ExitCode { value: 38 }",
"Merge | 8 | ExitCode { value: 38 }",
"Merge | 9 | ExitCode { value: 38 }",
"Merge | 10 | ExitCode { value: 38 }",
"Merge | 11 | ExitCode { value: 38 }",
"Merge | 13 | ExitCode { value: 38 }",
"Merge | 16 | ExitCode { value: 38 }",
"Merge | 18 | ExitCode { value: 38 }",
"Merge | 20 | ExitCode { value: 38 }",
"Merge | 21 | ExitCode { value: 38 }",
"Merge | 22 | ExitCode { value: 38 }",
"Merge | 23 | ExitCode { value: 38 }",
],
"returndatacopy_following_revert_in_create.json::returndatacopy_following_revert_in_create": [
"Istanbul | 0 | ExitCode { value: 38 }",
"Berlin | 0 | ExitCode { value: 38 }",
"London | 0 | ExitCode { value: 38 }",
"Merge | 0 | ExitCode { value: 38 }",
],
"returndatacopy_afterFailing_create.json::returndatacopy_afterFailing_create": [
"Istanbul | 0 | ExitCode { value: 38 }",
"Berlin | 0 | ExitCode { value: 38 }",
"London | 0 | ExitCode { value: 38 }",
"Merge | 0 | ExitCode { value: 38 }",
],
"returndatacopy_initial_256.json::returndatacopy_initial_256": [
"Istanbul | 0 | ExitCode { value: 38 }",
"Istanbul | 1 | ExitCode { value: 38 }",
"Istanbul | 2 | ExitCode { value: 38 }",
"Berlin | 0 | ExitCode { value: 38 }",
"Berlin | 1 | ExitCode { value: 38 }",
"Berlin | 2 | ExitCode { value: 38 }",
"London | 0 | ExitCode { value: 38 }",
"London | 1 | ExitCode { value: 38 }",
"London | 2 | ExitCode { value: 38 }",
"Merge | 0 | ExitCode { value: 38 }",
"Merge | 1 | ExitCode { value: 38 }",
"Merge | 2 | ExitCode { value: 38 }",
],
"returndatacopy_after_successful_delegatecall.json::returndatacopy_after_successful_delegatecall": [
"Istanbul | 0 | ExitCode { value: 38 }",
"Berlin | 0 | ExitCode { value: 38 }",
"London | 0 | ExitCode { value: 38 }",
"Merge | 0 | ExitCode { value: 38 }",
],
"returndatacopy_after_successful_callcode.json::returndatacopy_after_successful_callcode": [
"Istanbul | 0 | ExitCode { value: 35 }",
"Berlin | 0 | ExitCode { value: 35 }",
"London | 0 | ExitCode { value: 35 }",
"Merge | 0 | ExitCode { value: 35 }",
],
"returndatacopy_initial.json::returndatacopy_initial": [
"Istanbul | 0 | ExitCode { value: 38 }",
"Berlin | 0 | ExitCode { value: 38 }",
"London | 0 | ExitCode { value: 38 }",
"Merge | 0 | ExitCode { value: 38 }",
],
"returndatacopy_after_failing_staticcall.json::returndatacopy_after_failing_staticcall": [
"Istanbul | 0 | ExitCode { value: 38 }",
"Berlin | 0 | ExitCode { value: 38 }",
"London | 0 | ExitCode { value: 38 }",
"Merge | 0 | ExitCode { value: 38 }",
],
"modexp_modsize0_returndatasize.json::modexp_modsize0_returndatasize": [
"Istanbul | 0 | ExitCode { value: 35 }",
"Istanbul | 1 | ExitCode { value: 35 }",
"Istanbul | 2 | ExitCode { value: 35 }",
"Istanbul | 3 | ExitCode { value: 35 }",
"Istanbul | 4 | ExitCode { value: 35 }",
"Berlin | 0 | ExitCode { value: 35 }",
"Berlin | 1 | ExitCode { value: 35 }",
"Berlin | 2 | ExitCode { value: 35 }",
"Berlin | 3 | ExitCode { value: 35 }",
"Berlin | 4 | ExitCode { value: 35 }",
"London | 0 | ExitCode { value: 35 }",
"London | 1 | ExitCode { value: 35 }",
"London | 2 | ExitCode { value: 35 }",
"London | 3 | ExitCode { value: 35 }",
"London | 4 | ExitCode { value: 35 }",
"Merge | 0 | ExitCode { value: 35 }",
"Merge | 1 | ExitCode { value: 35 }",
"Merge | 2 | ExitCode { value: 35 }",
"Merge | 3 | ExitCode { value: 35 }",
"Merge | 4 | ExitCode { value: 35 }",
],
"returndatacopy_after_failing_callcode.json::returndatacopy_after_failing_callcode": [
"Istanbul | 0 | ExitCode { value: 35 }",
"Berlin | 0 | ExitCode { value: 35 }",
"London | 0 | ExitCode { value: 35 }",
"Merge | 0 | ExitCode { value: 35 }",
],
"returndatasize_after_successful_callcode.json::returndatasize_after_successful_callcode": [
"Istanbul | 0 | ExitCode { value: 35 }",
"Berlin | 0 | ExitCode { value: 35 }",
"London | 0 | ExitCode { value: 35 }",
"Merge | 0 | ExitCode { value: 35 }",
],
"clearReturnBuffer.json::clearReturnBuffer": [
"London | 42 | ExitCode { value: 35 }",
"London | 43 | ExitCode { value: 35 }",
"London | 44 | ExitCode { value: 35 }",
"London | 45 | ExitCode { value: 35 }",
"London | 46 | ExitCode { value: 35 }",
"London | 47 | ExitCode { value: 35 }",
"London | 48 | ExitCode { value: 35 }",
"London | 49 | ExitCode { value: 35 }",
"London | 50 | ExitCode { value: 35 }",
"London | 51 | ExitCode { value: 35 }",
"London | 52 | ExitCode { value: 35 }",
"London | 53 | ExitCode { value: 35 }",
"London | 54 | ExitCode { value: 35 }",
"London | 55 | ExitCode { value: 35 }",
"London | 98 | ExitCode { value: 35 }",
"London | 99 | ExitCode { value: 35 }",
"London | 100 | ExitCode { value: 35 }",
"London | 101 | ExitCode { value: 35 }",
"London | 102 | ExitCode { value: 35 }",
"London | 103 | ExitCode { value: 35 }",
"London | 104 | ExitCode { value: 35 }",
"London | 105 | ExitCode { value: 35 }",
"London | 106 | ExitCode { value: 35 }",
"London | 107 | ExitCode { value: 35 }",
"London | 108 | ExitCode { value: 35 }",
"London | 109 | ExitCode { value: 35 }",
"London | 110 | ExitCode { value: 35 }",
"London | 111 | ExitCode { value: 35 }",
"Merge | 42 | ExitCode { value: 35 }",
"Merge | 43 | ExitCode { value: 35 }",
"Merge | 44 | ExitCode { value: 35 }",
"Merge | 45 | ExitCode { value: 35 }",
"Merge | 46 | ExitCode { value: 35 }",
"Merge | 47 | ExitCode { value: 35 }",
"Merge | 48 | ExitCode { value: 35 }",
"Merge | 49 | ExitCode { value: 35 }",
"Merge | 50 | ExitCode { value: 35 }",
"Merge | 51 | ExitCode { value: 35 }",
"Merge | 52 | ExitCode { value: 35 }",
"Merge | 53 | ExitCode { value: 35 }",
"Merge | 54 | ExitCode { value: 35 }",
"Merge | 55 | ExitCode { value: 35 }",
"Merge | 98 | ExitCode { value: 35 }",
"Merge | 99 | ExitCode { value: 35 }",
"Merge | 100 | ExitCode { value: 35 }",
"Merge | 101 | ExitCode { value: 35 }",
"Merge | 102 | ExitCode { value: 35 }",
"Merge | 103 | ExitCode { value: 35 }",
"Merge | 104 | ExitCode { value: 35 }",
"Merge | 105 | ExitCode { value: 35 }",
"Merge | 106 | ExitCode { value: 35 }",
"Merge | 107 | ExitCode { value: 35 }",
"Merge | 108 | ExitCode { value: 35 }",
"Merge | 109 | ExitCode { value: 35 }",
"Merge | 110 | ExitCode { value: 35 }",
"Merge | 111 | ExitCode { value: 35 }",
],
}
All these look normal given the nature of the tests, keeping open for verification.