From 06c1f6918effbd1ec6898ce40c69eb930c1b54ac Mon Sep 17 00:00:00 2001 From: Outcry <843648230@qq.com> Date: Mon, 19 Jan 2026 10:47:40 +0000 Subject: [PATCH] test: support interpreter test in evmone unittest --- .ci/run_test_suite.sh | 4 +- .github/workflows/dtvm_evm_test_x86.yml | 2 +- .../EVMOneInterpreterUnitTestsRunList.txt | 140 ++++++++++++++++++ .../EVMOneMultipassUnitTestsRunList.txt | 0 4 files changed, 143 insertions(+), 3 deletions(-) create mode 100644 tests/evmone_unittests/EVMOneInterpreterUnitTestsRunList.txt rename EVMOneUnitTestsRunList.txt => tests/evmone_unittests/EVMOneMultipassUnitTestsRunList.txt (100%) diff --git a/.ci/run_test_suite.sh b/.ci/run_test_suite.sh index 1c4b6b7e1..9cb4ded81 100644 --- a/.ci/run_test_suite.sh +++ b/.ci/run_test_suite.sh @@ -148,10 +148,10 @@ for STACK_TYPE in ${STACK_TYPES[@]}; do "evmonetestsuite") git clone --depth 1 --recurse-submodules -b for_test https://github.com/DTVMStack/evmone.git mv build/lib/* evmone - mv EVMOneUnitTestsRunList.txt evmone cd evmone git status - ./run_unittests.sh + ./run_unittests.sh ../tests/evmone_unittests/EVMOneMultipassUnitTestsRunList.txt mode=multipass + ./run_unittests.sh ../tests/evmone_unittests/EVMOneInterpreterUnitTestsRunList.txt mode=interpreter ;; esac done diff --git a/.github/workflows/dtvm_evm_test_x86.yml b/.github/workflows/dtvm_evm_test_x86.yml index 729321c0e..8763f4a71 100644 --- a/.github/workflows/dtvm_evm_test_x86.yml +++ b/.github/workflows/dtvm_evm_test_x86.yml @@ -144,7 +144,7 @@ jobs: bash .ci/run_test_suite.sh build_test_release_evmone_unittests_on_x86: - name: Test DTVM-EVM multipass using evmone unit tests in release mode on x86-64 + name: Test DTVM-EVM multipass and interpreter using evmone unit tests in release mode on x86-64 runs-on: ubuntu-latest container: image: dtvmdev1/dtvm-dev-x64:main diff --git a/tests/evmone_unittests/EVMOneInterpreterUnitTestsRunList.txt b/tests/evmone_unittests/EVMOneInterpreterUnitTestsRunList.txt new file mode 100644 index 000000000..1f614cafe --- /dev/null +++ b/tests/evmone_unittests/EVMOneInterpreterUnitTestsRunList.txt @@ -0,0 +1,140 @@ +multi_vm/evm.empty/external_vm +multi_vm/evm.push_and_pop/external_vm +multi_vm/evm.push_implicit_data/external_vm +multi_vm/evm.stack_underflow/external_vm +multi_vm/evm.add/external_vm +multi_vm/evm.dup/external_vm +multi_vm/evm.dup_all_1/external_vm +multi_vm/evm.dup_stack_overflow/external_vm +multi_vm/evm.dup_stack_underflow/external_vm +multi_vm/evm.sub_and_swap/external_vm +multi_vm/evm.swapsn_jumpdest/external_vm +multi_vm/evm.swapsn_push/external_vm +multi_vm/evm.gas/external_vm +multi_vm/evm.comparison/external_vm +multi_vm/evm.bitwise/external_vm +multi_vm/evm.byte/external_vm +multi_vm/evm.byte_overflow/external_vm +multi_vm/evm.addmod_mulmod/external_vm +multi_vm/evm.divmod/external_vm +multi_vm/evm.div_by_zero/external_vm +multi_vm/evm.mod_by_zero/external_vm +multi_vm/evm.addmod_mulmod_by_zero/external_vm +multi_vm/evm.signextend_31/external_vm +multi_vm/evm.exp_1_0/external_vm +multi_vm/evm.exp_0_0/external_vm +multi_vm/evm.calldataload/external_vm +multi_vm/evm.calldataload_outofrange/external_vm +multi_vm/evm.address/external_vm +multi_vm/evm.caller_callvalue/external_vm +multi_vm/evm.invalid/external_vm +multi_vm/evm.inner_stop/external_vm +multi_vm/evm.inner_return/external_vm +multi_vm/evm.inner_revert/external_vm +multi_vm/evm.inner_invalid/external_vm +multi_vm/evm.keccak256/external_vm +multi_vm/evm.keccak256_empty/external_vm +multi_vm/evm.revert/external_vm +multi_vm/evm.return_empty_buffer_at_offset_0/external_vm +multi_vm/evm.shl/external_vm +multi_vm/evm.shr/external_vm +multi_vm/evm.sar/external_vm +multi_vm/evm.sar_01/external_vm +multi_vm/evm.abort/external_vm +multi_vm/evm.max_code_size_push1/external_vm +multi_vm/evm.reverse_16_stack_items/external_vm +multi_vm/evm.create/external_vm +multi_vm/evm.create_gas/external_vm +multi_vm/evm.create2/external_vm +multi_vm/evm.create2_salt_cost/external_vm +multi_vm/evm.create_balance_too_low/external_vm +multi_vm/evm.call_depth_limit/external_vm +multi_vm/evm.call_output/external_vm +multi_vm/evm.call_high_gas/external_vm +multi_vm/evm.staticcall_input/external_vm +multi_vm/evm.create_oog_after/external_vm +multi_vm/evm.returndatasize_before_call/external_vm +multi_vm/evm.call_gas_refund_propagation/external_vm +multi_vm/evm.call_gas_refund_aggregation_different_calls/external_vm +multi_vm/evm.call_gas_refund_aggregation_same_calls/external_vm +multi_vm/evm.jump/external_vm +multi_vm/evm.jumpi/external_vm +multi_vm/evm.jumpi_else/external_vm +multi_vm/evm.jumpi_at_the_end/external_vm +multi_vm/evm.bad_jumpdest/external_vm +multi_vm/evm.jump_to_block_beginning/external_vm +multi_vm/evm.jumpi_stack/external_vm +multi_vm/evm.jump_over_jumpdest/external_vm +multi_vm/evm.jump_to_missing_push_data/external_vm +multi_vm/evm.jump_to_missing_push_data2/external_vm +multi_vm/evm.jump_dead_code/external_vm +multi_vm/evm.stop_dead_code/external_vm +multi_vm/evm.dead_code_at_the_end/external_vm +multi_vm/evm.jumpi_jumpdest/external_vm +multi_vm/evm.jumpi_followed_by_stack_underflow/external_vm +multi_vm/evm.pc_sum/external_vm +multi_vm/evm.pc_after_jump_1/external_vm +multi_vm/evm.pc_after_jump_2/external_vm +multi_vm/evm.eip2929_case1/external_vm +multi_vm/evm.eip2929_case3/external_vm +multi_vm/evm.eip2929_case4/external_vm +multi_vm/evm.eip2929_balance_oog/external_vm +multi_vm/evm.eip2929_extcodesize_oog/external_vm +multi_vm/evm.eip2929_extcodecopy_oog/external_vm +multi_vm/evm.eip2929_extcodehash_oog/external_vm +multi_vm/evm.eip2929_sload_cold/external_vm +multi_vm/evm.eip2929_sload_two_slots/external_vm +multi_vm/evm.eip2929_sload_warm/external_vm +multi_vm/evm.eip2929_delegatecall_cold/external_vm +multi_vm/evm.basefee_nominal_case/external_vm +multi_vm/evm.push0/external_vm +multi_vm/evm.push0_return_empty/external_vm +multi_vm/evm.push0_full_stack/external_vm +multi_vm/evm.push0_stack_overflow/external_vm +multi_vm/evm.create_initcode_limit/external_vm +multi_vm/evm.create_initcode_gas_cost/external_vm +multi_vm/evm.create2_initcode_gas_cost/external_vm +multi_vm/evm.blobbasefee_1/external_vm +multi_vm/evm.blobbasefee_dede/external_vm +multi_vm/evm.memory_and_not/external_vm +multi_vm/evm.msize/external_vm +multi_vm/evm.calldatacopy/external_vm +multi_vm/evm.memory_big_allocation/external_vm +multi_vm/evm.memory_grow_mstore8/external_vm +multi_vm/evm.mstore8_memory_cost/external_vm +multi_vm/evm.keccak256_memory_cost/external_vm +multi_vm/evm.calldatacopy_memory_cost/external_vm +multi_vm/evm.mcopy_memory_cost/external_vm +multi_vm/evm.code/external_vm +multi_vm/evm.codecopy_combinations/external_vm +multi_vm/evm.tx_context/external_vm +multi_vm/evm.log0_empty/external_vm +multi_vm/evm.blockhash/external_vm +multi_vm/evm.extcodesize/external_vm +multi_vm/evm.extcodecopy_big_index/external_vm +multi_vm/evm.codecopy_empty/external_vm +multi_vm/evm.extcodecopy_empty/external_vm +multi_vm/evm.codecopy_memory_cost/external_vm +multi_vm/evm.extcodecopy_buffer_overflow/external_vm +multi_vm/evm.sstore_pop_stack/external_vm +multi_vm/evm.sstore_out_of_block_gas/external_vm +multi_vm/evm.sstore_cost/external_vm +multi_vm/evm.sstore_cost_legacy/external_vm +multi_vm/evm.sstore_cost_net_gas_metering/external_vm +multi_vm/evm.evmone_loaded_program_relocation/external_vm +multi_vm/evm.jumpdest_with_high_offset/external_vm +multi_vm/evm.grow_memory_with_mload/external_vm +multi_vm/evm.grow_memory_with_mstore/external_vm +multi_vm/evm.jump_around/external_vm +multi_vm/evm.signextend_bench/external_vm +multi_vm/evm.call_high_gas/external_vm +multi_vm/evm.create/external_vm +multi_vm/evm.create2/external_vm +multi_vm/evm.create2_salt_cost/external_vm +multi_vm/evm.create_gas/external_vm +multi_vm/evm.create_initcode_limit/external_vm +multi_vm/evm.sstore_cost/external_vm +multi_vm/evm.sstore_cost_legacy/external_vm +multi_vm/evm.sstore_cost_net_gas_metering/external_vm +multi_vm/evm.sstore_out_of_block_gas/external_vm +multi_vm/evm.sstore_pop_stack/external_vm \ No newline at end of file diff --git a/EVMOneUnitTestsRunList.txt b/tests/evmone_unittests/EVMOneMultipassUnitTestsRunList.txt similarity index 100% rename from EVMOneUnitTestsRunList.txt rename to tests/evmone_unittests/EVMOneMultipassUnitTestsRunList.txt