diff --git a/framework/config.py b/framework/config.py index 9187c93..1e8d9f9 100644 --- a/framework/config.py +++ b/framework/config.py @@ -47,9 +47,7 @@ # contract ALWAYS_SUCCESS_CONTRACT_PATH = f"{get_project_root()}/source/contract/always_success" -SPAWN_CONTRACT_PATH = ( - f"{get_project_root()}/source/contract/spawn_peak_memory_2m_to_32m" -) +SPAWN_CONTRACT_PATH = f"{get_project_root()}/source/contract/test_cases/spawn_demo" def get_tmp_path(): diff --git a/prepare.sh b/prepare.sh index b23dd3a..a112c51 100644 --- a/prepare.sh +++ b/prepare.sh @@ -1,4 +1,10 @@ set -e +# git clone https://github.com/nervosnetwork/ckb-cli.git +# cd ckb-cli +# git checkout pkg/v1.7.0 +# make prod +# cp target/release/ckb-cli ../source/ckb-cli +# cd ../ cp download/0.110.2/ckb-cli ./source/ckb-cli-old cp download/0.117.0/ckb-cli ./source/ckb-cli #git clone https://github.com/quake/ckb-light-client.git diff --git a/source/contract/spawn_peak_memory_2m_to_32m b/source/contract/spawn_peak_memory_2m_to_32m deleted file mode 100755 index ebe1477..0000000 Binary files a/source/contract/spawn_peak_memory_2m_to_32m and /dev/null differ diff --git a/source/contract/test_cases/always_success b/source/contract/test_cases/always_success index 9089b7c..9365d3a 100755 Binary files a/source/contract/test_cases/always_success and b/source/contract/test_cases/always_success differ diff --git a/source/contract/test_cases/atomic_i16 b/source/contract/test_cases/atomic_i16 index b62ca8b..5cbb62d 100755 Binary files a/source/contract/test_cases/atomic_i16 and b/source/contract/test_cases/atomic_i16 differ diff --git a/source/contract/test_cases/atomic_i32 b/source/contract/test_cases/atomic_i32 index c4d5250..d06ef8e 100755 Binary files a/source/contract/test_cases/atomic_i32 and b/source/contract/test_cases/atomic_i32 differ diff --git a/source/contract/test_cases/atomic_i64 b/source/contract/test_cases/atomic_i64 index c1c4bee..bce5b8b 100755 Binary files a/source/contract/test_cases/atomic_i64 and b/source/contract/test_cases/atomic_i64 differ diff --git a/source/contract/test_cases/atomic_i8 b/source/contract/test_cases/atomic_i8 index 54a0c68..e645997 100755 Binary files a/source/contract/test_cases/atomic_i8 and b/source/contract/test_cases/atomic_i8 differ diff --git a/source/contract/test_cases/atomic_isize b/source/contract/test_cases/atomic_isize index 00243a4..aefff00 100755 Binary files a/source/contract/test_cases/atomic_isize and b/source/contract/test_cases/atomic_isize differ diff --git a/source/contract/test_cases/atomic_ptr b/source/contract/test_cases/atomic_ptr index 6ed6515..178af90 100755 Binary files a/source/contract/test_cases/atomic_ptr and b/source/contract/test_cases/atomic_ptr differ diff --git a/source/contract/test_cases/atomic_u16 b/source/contract/test_cases/atomic_u16 index 11fb9ed..2a70e95 100755 Binary files a/source/contract/test_cases/atomic_u16 and b/source/contract/test_cases/atomic_u16 differ diff --git a/source/contract/test_cases/atomic_u32 b/source/contract/test_cases/atomic_u32 index bd8d7fa..3dc3230 100755 Binary files a/source/contract/test_cases/atomic_u32 and b/source/contract/test_cases/atomic_u32 differ diff --git a/source/contract/test_cases/atomic_u64 b/source/contract/test_cases/atomic_u64 index ef83346..13a0af5 100755 Binary files a/source/contract/test_cases/atomic_u64 and b/source/contract/test_cases/atomic_u64 differ diff --git a/source/contract/test_cases/atomic_u8 b/source/contract/test_cases/atomic_u8 index cf78c14..cfd301c 100755 Binary files a/source/contract/test_cases/atomic_u8 and b/source/contract/test_cases/atomic_u8 differ diff --git a/source/contract/test_cases/atomic_usize b/source/contract/test_cases/atomic_usize index 32cfb91..2f66bf5 100755 Binary files a/source/contract/test_cases/atomic_usize and b/source/contract/test_cases/atomic_usize differ diff --git a/source/contract/test_cases/ckb_get_memory_limit b/source/contract/test_cases/ckb_get_memory_limit deleted file mode 100755 index 8d02579..0000000 Binary files a/source/contract/test_cases/ckb_get_memory_limit and /dev/null differ diff --git a/source/contract/test_cases/ckb_get_memory_limit_spawn b/source/contract/test_cases/ckb_get_memory_limit_spawn deleted file mode 100755 index 783f89c..0000000 Binary files a/source/contract/test_cases/ckb_get_memory_limit_spawn and /dev/null differ diff --git a/source/contract/test_cases/ckb_load_cell_data b/source/contract/test_cases/ckb_load_cell_data new file mode 100755 index 0000000..b7e3b5e Binary files /dev/null and b/source/contract/test_cases/ckb_load_cell_data differ diff --git a/source/contract/test_cases/ckb_pipe b/source/contract/test_cases/ckb_pipe new file mode 100755 index 0000000..8a2bbee Binary files /dev/null and b/source/contract/test_cases/ckb_pipe differ diff --git a/source/contract/test_cases/ckb_process_id_in_exec b/source/contract/test_cases/ckb_process_id_in_exec new file mode 100755 index 0000000..b10d2bc Binary files /dev/null and b/source/contract/test_cases/ckb_process_id_in_exec differ diff --git a/source/contract/test_cases/ckb_spawn_exited_fd_close b/source/contract/test_cases/ckb_spawn_exited_fd_close new file mode 100755 index 0000000..52d848b Binary files /dev/null and b/source/contract/test_cases/ckb_spawn_exited_fd_close differ diff --git a/source/contract/test_cases/ckb_spawn_for b/source/contract/test_cases/ckb_spawn_for new file mode 100755 index 0000000..4c738c4 Binary files /dev/null and b/source/contract/test_cases/ckb_spawn_for differ diff --git a/source/contract/test_cases/demo b/source/contract/test_cases/demo new file mode 100755 index 0000000..a2239fd Binary files /dev/null and b/source/contract/test_cases/demo differ diff --git a/source/contract/test_cases/exec b/source/contract/test_cases/exec new file mode 100755 index 0000000..9365d3a Binary files /dev/null and b/source/contract/test_cases/exec differ diff --git a/source/contract/test_cases/exec_with_block_opcode b/source/contract/test_cases/exec_with_block_opcode new file mode 100755 index 0000000..c409dbb Binary files /dev/null and b/source/contract/test_cases/exec_with_block_opcode differ diff --git a/source/contract/test_cases/exec_with_exec b/source/contract/test_cases/exec_with_exec new file mode 100755 index 0000000..ca81436 Binary files /dev/null and b/source/contract/test_cases/exec_with_exec differ diff --git a/source/contract/test_cases/load_block_extension b/source/contract/test_cases/load_block_extension index e43cca4..cf506f3 100755 Binary files a/source/contract/test_cases/load_block_extension and b/source/contract/test_cases/load_block_extension differ diff --git a/source/contract/test_cases/loop_contract b/source/contract/test_cases/loop_contract index 1d99025..b3ed991 100755 Binary files a/source/contract/test_cases/loop_contract and b/source/contract/test_cases/loop_contract differ diff --git a/source/contract/test_cases/pipe_reader b/source/contract/test_cases/pipe_reader new file mode 100755 index 0000000..03a89fd Binary files /dev/null and b/source/contract/test_cases/pipe_reader differ diff --git a/source/contract/test_cases/rfc49_atomic b/source/contract/test_cases/rfc49_atomic index e2bfafb..8d0d760 100755 Binary files a/source/contract/test_cases/rfc49_atomic and b/source/contract/test_cases/rfc49_atomic differ diff --git a/source/contract/test_cases/set_content b/source/contract/test_cases/set_content deleted file mode 100755 index 818d144..0000000 Binary files a/source/contract/test_cases/set_content and /dev/null differ diff --git a/source/contract/test_cases/set_content_data_propagation_to_parent_only b/source/contract/test_cases/set_content_data_propagation_to_parent_only deleted file mode 100755 index b844795..0000000 Binary files a/source/contract/test_cases/set_content_data_propagation_to_parent_only and /dev/null differ diff --git a/source/contract/test_cases/set_content_exceed_length b/source/contract/test_cases/set_content_exceed_length deleted file mode 100755 index 1320bf3..0000000 Binary files a/source/contract/test_cases/set_content_exceed_length and /dev/null differ diff --git a/source/contract/test_cases/set_content_insufficient_length b/source/contract/test_cases/set_content_insufficient_length deleted file mode 100755 index d8aa71d..0000000 Binary files a/source/contract/test_cases/set_content_insufficient_length and /dev/null differ diff --git a/source/contract/test_cases/set_content_many_times b/source/contract/test_cases/set_content_many_times deleted file mode 100755 index 34c0045..0000000 Binary files a/source/contract/test_cases/set_content_many_times and /dev/null differ diff --git a/source/contract/test_cases/set_content_nonzero_exit_no_rollback b/source/contract/test_cases/set_content_nonzero_exit_no_rollback deleted file mode 100755 index a3b282b..0000000 Binary files a/source/contract/test_cases/set_content_nonzero_exit_no_rollback and /dev/null differ diff --git a/source/contract/test_cases/set_content_spawn_length_exceeds_array_size_set_array_length b/source/contract/test_cases/set_content_spawn_length_exceeds_array_size_set_array_length deleted file mode 100755 index abd9e7e..0000000 Binary files a/source/contract/test_cases/set_content_spawn_length_exceeds_array_size_set_array_length and /dev/null differ diff --git a/source/contract/test_cases/set_content_spawn_length_exceeds_array_size_set_length b/source/contract/test_cases/set_content_spawn_length_exceeds_array_size_set_length deleted file mode 100755 index bcfbd07..0000000 Binary files a/source/contract/test_cases/set_content_spawn_length_exceeds_array_size_set_length and /dev/null differ diff --git a/source/contract/test_cases/set_content_spawn_length_exceeds_array_size_set_max_length b/source/contract/test_cases/set_content_spawn_length_exceeds_array_size_set_max_length deleted file mode 100755 index 795a30c..0000000 Binary files a/source/contract/test_cases/set_content_spawn_length_exceeds_array_size_set_max_length and /dev/null differ diff --git a/source/contract/test_cases/set_content_spawn_length_less_than_array_size_set_array_length b/source/contract/test_cases/set_content_spawn_length_less_than_array_size_set_array_length deleted file mode 100755 index b1ca8b8..0000000 Binary files a/source/contract/test_cases/set_content_spawn_length_less_than_array_size_set_array_length and /dev/null differ diff --git a/source/contract/test_cases/set_content_spawn_length_less_than_array_size_set_length b/source/contract/test_cases/set_content_spawn_length_less_than_array_size_set_length deleted file mode 100755 index 6eeef0f..0000000 Binary files a/source/contract/test_cases/set_content_spawn_length_less_than_array_size_set_length and /dev/null differ diff --git a/source/contract/test_cases/set_content_without_spawn b/source/contract/test_cases/set_content_without_spawn deleted file mode 100755 index b33cd48..0000000 Binary files a/source/contract/test_cases/set_content_without_spawn and /dev/null differ diff --git a/source/contract/test_cases/spawn-caller b/source/contract/test_cases/spawn-caller new file mode 100755 index 0000000..2347201 Binary files /dev/null and b/source/contract/test_cases/spawn-caller differ diff --git a/source/contract/test_cases/spawn_16_run_same_time b/source/contract/test_cases/spawn_16_run_same_time new file mode 100755 index 0000000..efc1f7b Binary files /dev/null and b/source/contract/test_cases/spawn_16_run_same_time differ diff --git a/source/contract/test_cases/spawn_argc_is_large b/source/contract/test_cases/spawn_argc_is_large new file mode 100755 index 0000000..c5a385b Binary files /dev/null and b/source/contract/test_cases/spawn_argc_is_large differ diff --git a/source/contract/test_cases/spawn_argc_is_u64_max b/source/contract/test_cases/spawn_argc_is_u64_max deleted file mode 100755 index 7048b46..0000000 Binary files a/source/contract/test_cases/spawn_argc_is_u64_max and /dev/null differ diff --git a/source/contract/test_cases/spawn_argc_not_eq b/source/contract/test_cases/spawn_argc_not_eq deleted file mode 100755 index 2cd1ebc..0000000 Binary files a/source/contract/test_cases/spawn_argc_not_eq and /dev/null differ diff --git a/source/contract/test_cases/spawn_argv b/source/contract/test_cases/spawn_argv deleted file mode 100755 index 5197b16..0000000 Binary files a/source/contract/test_cases/spawn_argv and /dev/null differ diff --git a/source/contract/test_cases/spawn_bounds_is_not_0 b/source/contract/test_cases/spawn_bounds_is_not_0 new file mode 100755 index 0000000..c6e8998 Binary files /dev/null and b/source/contract/test_cases/spawn_bounds_is_not_0 differ diff --git a/source/contract/test_cases/spawn_bounds_is_out_of_range b/source/contract/test_cases/spawn_bounds_is_out_of_range new file mode 100755 index 0000000..412a4e0 Binary files /dev/null and b/source/contract/test_cases/spawn_bounds_is_out_of_range differ diff --git a/source/contract/test_cases/spawn_can_stop_when_son_spawn_pause b/source/contract/test_cases/spawn_can_stop_when_son_spawn_pause new file mode 100755 index 0000000..e0edb5a Binary files /dev/null and b/source/contract/test_cases/spawn_can_stop_when_son_spawn_pause differ diff --git a/source/contract/test_cases/spawn_content b/source/contract/test_cases/spawn_content deleted file mode 100755 index b2a89f7..0000000 Binary files a/source/contract/test_cases/spawn_content and /dev/null differ diff --git a/source/contract/test_cases/spawn_create_17_spawn b/source/contract/test_cases/spawn_create_17_spawn new file mode 100755 index 0000000..8d33cb2 Binary files /dev/null and b/source/contract/test_cases/spawn_create_17_spawn differ diff --git a/source/contract/test_cases/spawn_current_cycles b/source/contract/test_cases/spawn_current_cycles deleted file mode 100755 index 852f37e..0000000 Binary files a/source/contract/test_cases/spawn_current_cycles and /dev/null differ diff --git a/source/contract/test_cases/spawn_current_memory b/source/contract/test_cases/spawn_current_memory deleted file mode 100755 index a569264..0000000 Binary files a/source/contract/test_cases/spawn_current_memory and /dev/null differ diff --git a/source/contract/test_cases/spawn_cycle_inc_when_contains_recursion_and_loop_spawn b/source/contract/test_cases/spawn_cycle_inc_when_contains_recursion_and_loop_spawn new file mode 100755 index 0000000..4116228 Binary files /dev/null and b/source/contract/test_cases/spawn_cycle_inc_when_contains_recursion_and_loop_spawn differ diff --git a/source/contract/test_cases/spawn_demo b/source/contract/test_cases/spawn_demo index a74167d..856d918 100755 Binary files a/source/contract/test_cases/spawn_demo and b/source/contract/test_cases/spawn_demo differ diff --git a/source/contract/test_cases/spawn_demo_debug b/source/contract/test_cases/spawn_demo_debug new file mode 100755 index 0000000..7ab0df1 Binary files /dev/null and b/source/contract/test_cases/spawn_demo_debug differ diff --git a/source/contract/test_cases/spawn_elf_format_error b/source/contract/test_cases/spawn_elf_format_error deleted file mode 100755 index a52d118..0000000 Binary files a/source/contract/test_cases/spawn_elf_format_error and /dev/null differ diff --git a/source/contract/test_cases/spawn_exceeded_max_content_length b/source/contract/test_cases/spawn_exceeded_max_content_length deleted file mode 100755 index c4ac920..0000000 Binary files a/source/contract/test_cases/spawn_exceeded_max_content_length and /dev/null differ diff --git a/source/contract/test_cases/spawn_exceeded_max_peak_memory b/source/contract/test_cases/spawn_exceeded_max_peak_memory deleted file mode 100755 index 378ed3b..0000000 Binary files a/source/contract/test_cases/spawn_exceeded_max_peak_memory and /dev/null differ diff --git a/source/contract/test_cases/spawn_exec_memory_limit_le_7 b/source/contract/test_cases/spawn_exec_memory_limit_le_7 deleted file mode 100755 index c744776..0000000 Binary files a/source/contract/test_cases/spawn_exec_memory_limit_le_7 and /dev/null differ diff --git a/source/contract/test_cases/spawn_exec_set_content b/source/contract/test_cases/spawn_exec_set_content deleted file mode 100755 index 993d24e..0000000 Binary files a/source/contract/test_cases/spawn_exec_set_content and /dev/null differ diff --git a/source/contract/test_cases/spawn_exec_spawn b/source/contract/test_cases/spawn_exec_spawn deleted file mode 100755 index 4b7c91a..0000000 Binary files a/source/contract/test_cases/spawn_exec_spawn and /dev/null differ diff --git a/source/contract/test_cases/spawn_fib b/source/contract/test_cases/spawn_fib deleted file mode 100755 index d60385e..0000000 Binary files a/source/contract/test_cases/spawn_fib and /dev/null differ diff --git a/source/contract/test_cases/spawn_index b/source/contract/test_cases/spawn_index deleted file mode 100755 index e70560f..0000000 Binary files a/source/contract/test_cases/spawn_index and /dev/null differ diff --git a/source/contract/test_cases/spawn_inherited_fds_0_is_in_mid b/source/contract/test_cases/spawn_inherited_fds_0_is_in_mid new file mode 100755 index 0000000..54d485c Binary files /dev/null and b/source/contract/test_cases/spawn_inherited_fds_0_is_in_mid differ diff --git a/source/contract/test_cases/spawn_inherited_fds_contains_closed_fd b/source/contract/test_cases/spawn_inherited_fds_contains_closed_fd new file mode 100755 index 0000000..8abe84d Binary files /dev/null and b/source/contract/test_cases/spawn_inherited_fds_contains_closed_fd differ diff --git a/source/contract/test_cases/spawn_inherited_fds_end_is_not_0 b/source/contract/test_cases/spawn_inherited_fds_end_is_not_0 new file mode 100755 index 0000000..3ba5070 Binary files /dev/null and b/source/contract/test_cases/spawn_inherited_fds_end_is_not_0 differ diff --git a/source/contract/test_cases/spawn_inherited_fds_not_exist b/source/contract/test_cases/spawn_inherited_fds_not_exist new file mode 100755 index 0000000..a01944e Binary files /dev/null and b/source/contract/test_cases/spawn_inherited_fds_not_exist differ diff --git a/source/contract/test_cases/spawn_inherited_fds_not_exist_fd b/source/contract/test_cases/spawn_inherited_fds_not_exist_fd new file mode 100755 index 0000000..a80b2cd Binary files /dev/null and b/source/contract/test_cases/spawn_inherited_fds_not_exist_fd differ diff --git a/source/contract/test_cases/spawn_invaild_index b/source/contract/test_cases/spawn_invaild_index new file mode 100755 index 0000000..b2adc0c Binary files /dev/null and b/source/contract/test_cases/spawn_invaild_index differ diff --git a/source/contract/test_cases/spawn_invoke_block_opcode b/source/contract/test_cases/spawn_invoke_block_opcode new file mode 100755 index 0000000..c55f831 Binary files /dev/null and b/source/contract/test_cases/spawn_invoke_block_opcode differ diff --git a/source/contract/test_cases/spawn_loop_times b/source/contract/test_cases/spawn_loop_times new file mode 100755 index 0000000..acb46b0 Binary files /dev/null and b/source/contract/test_cases/spawn_loop_times differ diff --git a/source/contract/test_cases/spawn_loop_times_max b/source/contract/test_cases/spawn_loop_times_max new file mode 100755 index 0000000..e60e3a5 Binary files /dev/null and b/source/contract/test_cases/spawn_loop_times_max differ diff --git a/source/contract/test_cases/spawn_out_of_memory b/source/contract/test_cases/spawn_out_of_memory deleted file mode 100755 index 1725ee3..0000000 Binary files a/source/contract/test_cases/spawn_out_of_memory and /dev/null differ diff --git a/source/contract/test_cases/spawn_place_is_out_of_range b/source/contract/test_cases/spawn_place_is_out_of_range new file mode 100755 index 0000000..61a12c1 Binary files /dev/null and b/source/contract/test_cases/spawn_place_is_out_of_range differ diff --git a/source/contract/test_cases/spawn_place_is_witness b/source/contract/test_cases/spawn_place_is_witness new file mode 100755 index 0000000..068b762 Binary files /dev/null and b/source/contract/test_cases/spawn_place_is_witness differ diff --git a/source/contract/test_cases/spawn_query b/source/contract/test_cases/spawn_query deleted file mode 100755 index 0b6e6b5..0000000 Binary files a/source/contract/test_cases/spawn_query and /dev/null differ diff --git a/source/contract/test_cases/spawn_recursion_times b/source/contract/test_cases/spawn_recursion_times new file mode 100755 index 0000000..543b63c Binary files /dev/null and b/source/contract/test_cases/spawn_recursion_times differ diff --git a/source/contract/test_cases/spawn_recursive b/source/contract/test_cases/spawn_recursive deleted file mode 100755 index 9d0b892..0000000 Binary files a/source/contract/test_cases/spawn_recursive and /dev/null differ diff --git a/source/contract/test_cases/spawn_source_is_input_cell b/source/contract/test_cases/spawn_source_is_input_cell new file mode 100755 index 0000000..843f5c1 Binary files /dev/null and b/source/contract/test_cases/spawn_source_is_input_cell differ diff --git a/source/contract/test_cases/spawn_source_is_output_cell b/source/contract/test_cases/spawn_source_is_output_cell new file mode 100755 index 0000000..334fd50 Binary files /dev/null and b/source/contract/test_cases/spawn_source_is_output_cell differ diff --git a/source/contract/test_cases/spawn_stop_16_spawn_create_17_spawn b/source/contract/test_cases/spawn_stop_16_spawn_create_17_spawn new file mode 100755 index 0000000..adc2985 Binary files /dev/null and b/source/contract/test_cases/spawn_stop_16_spawn_create_17_spawn differ diff --git a/source/contract/test_cases/spawn_times b/source/contract/test_cases/spawn_times deleted file mode 100755 index ef8c5e6..0000000 Binary files a/source/contract/test_cases/spawn_times and /dev/null differ diff --git a/source/contract/test_cases/spawn_with_exec b/source/contract/test_cases/spawn_with_exec new file mode 100755 index 0000000..9a78241 Binary files /dev/null and b/source/contract/test_cases/spawn_with_exec differ diff --git a/source/contract/test_cases/spawn_wrong_memory_limit b/source/contract/test_cases/spawn_wrong_memory_limit deleted file mode 100755 index 610c79a..0000000 Binary files a/source/contract/test_cases/spawn_wrong_memory_limit and /dev/null differ diff --git a/test_cases/ckb2023/test_01_before_hardfork.py b/test_cases/ckb2023/test_01_before_hardfork.py index 8c06c7f..ab22ee2 100644 --- a/test_cases/ckb2023/test_01_before_hardfork.py +++ b/test_cases/ckb2023/test_01_before_hardfork.py @@ -178,7 +178,7 @@ def test_06_0050_invoke_spawn_use_type(self): """ Before the fork, send a transaction contains spawn , use script:type invoke it. will return error 1. invoke spawn contrat - - return error: InvalidEcall(2101) + - return error: InvalidEcall(2603) :return: """ @@ -200,7 +200,7 @@ def test_06_0050_invoke_spawn_use_type(self): api_url=self.cluster.ckb_nodes[0].getClient().url, ) print("tx hash :", tx_hash) - expected_error_message = "InvalidEcall(2101)" + expected_error_message = "InvalidEcall(2603)" assert expected_error_message in exc_info.value.args[0], ( f"Expected substring '{expected_error_message}' " f"not found in actual string '{exc_info.value.args[0]}'" diff --git a/test_cases/ckb2023/test_02_after_hardfork.py b/test_cases/ckb2023/test_02_after_hardfork.py index 402e1ac..2aa0527 100644 --- a/test_cases/ckb2023/test_02_after_hardfork.py +++ b/test_cases/ckb2023/test_02_after_hardfork.py @@ -240,10 +240,10 @@ def test_07_0050_spawn_use_data2(self): def test_08_0050_spawn_use_data1(self): """ After a period of hard fork,send spawn tx by data1 . - - return Error: InvalidEcall(2101) + - return Error: InvalidEcall(2603) 1. send tx contains spawn opcode use data1 - - return Error: InvalidEcall(2101) + - return Error: InvalidEcall(2603) :return: """ @@ -260,7 +260,7 @@ def test_08_0050_spawn_use_data1(self): invoke_data, api_url=self.cluster.ckb_nodes[0].getClient().url, ) - expected_error_message = "InvalidEcall(2101)" + expected_error_message = "InvalidEcall(2603)" assert ( expected_error_message in exc_info.value.args[0] ), f"Expected substring '{expected_error_message}' not found in actual string '{exc_info.value.args[0]}'" @@ -271,7 +271,7 @@ def test_09_0050_spawn_use_data(self): - return Error: InvalidInstruction 1. send tx contains spawn opcode use data - - return Error: InvalidEcall(2101) + - return Error: MemWriteOnExecutablePage :return: """ @@ -288,7 +288,7 @@ def test_09_0050_spawn_use_data(self): invoke_data, api_url=self.cluster.ckb_nodes[0].getClient().url, ) - expected_error_message = "InvalidInstruction" + expected_error_message = "MemWriteOnExecutablePage" assert ( expected_error_message in exc_info.value.args[0] ), f"Expected substring '{expected_error_message}' not found in actual string '{exc_info.value.args[0]}'" diff --git a/test_cases/ckb2023/test_03_ckb_light_client_after_hardfork.py b/test_cases/ckb2023/test_03_ckb_light_client_after_hardfork.py index e9add02..6a1139b 100644 --- a/test_cases/ckb2023/test_03_ckb_light_client_after_hardfork.py +++ b/test_cases/ckb2023/test_03_ckb_light_client_after_hardfork.py @@ -261,6 +261,7 @@ def test_04_ckb_light_client_current_transfer_data2_tx(self): ) assert tx_hash == light_tx_hash + @pytest.mark.skip def test_05_ckb_light_client_current_spawn_contract_use_data2(self): """ send spawn tx ( hash type : data2), on the ckb light client @@ -317,6 +318,7 @@ def test_05_ckb_light_client_current_spawn_contract_use_data2(self): assert tx_hash == light_tx_hash + @pytest.mark.skip def test_05_ckb_light_client_current_spawn_contract_use_type(self): """ 1. send spawn tx ( hash type : type), on the ckb light client diff --git a/test_cases/ckb_cli/test_sync_state_by_ckbcli.py b/test_cases/ckb_cli/test_sync_state_by_ckbcli.py index bc50ea8..c33bf3b 100644 --- a/test_cases/ckb_cli/test_sync_state_by_ckbcli.py +++ b/test_cases/ckb_cli/test_sync_state_by_ckbcli.py @@ -1,3 +1,5 @@ +import pytest + from framework.basic import CkbTest @@ -32,6 +34,7 @@ def teardown_class(cls): cls.node.stop() cls.node.clean() + @pytest.mark.skip def test_01_sync_state(self): """ #1.The assume_valid_target specified by ckb, if no assume_valid_target, this will be all zero. diff --git a/test_cases/contracts/test_01_contract.py b/test_cases/contracts/test_01_contract.py index 1211e6a..5b31be2 100644 --- a/test_cases/contracts/test_01_contract.py +++ b/test_cases/contracts/test_01_contract.py @@ -1,8 +1,6 @@ -import json import os import time -import pytest from parameterized import parameterized from framework.basic import CkbTest @@ -21,12 +19,16 @@ def get_all_files(directory): def get_successful_files(): files = get_all_files(f"{get_project_root()}/source/contract/test_cases") files_list = [ - "spawn_exceeded_max_content_length", + "spawn_cycle_inc_when_contains_recursion_and_loop_spawn", + "spawn_source_is_input_cell", + "spawn_loop_times", + "spawn_source_is_output_cell", + "spawn_recursion_times", + "ckb_pipe", + "spawn_argc_is_large", + "spawn_place_is_witness", "loop_contract", - "spawn_exec_memory_limit_le_7", - "spawn_argc_not_eq", - "spawn_argc_is_u64_max", - "spawn_out_of_memory", + "exec_with_block_opcode", ] return [s for s in files if not any(s.endswith(suffix) for suffix in files_list)] @@ -36,12 +38,16 @@ def get_failed_files(): files = get_all_files(f"{get_project_root()}/source/contract/test_cases") files_list = [ - "spawn_exceeded_max_content_length", + "spawn_cycle_inc_when_contains_recursion_and_loop_spawn", + "spawn_source_is_input_cell", + "spawn_loop_times", + "spawn_source_is_output_cell", + "spawn_recursion_times", + "ckb_pipe", + "spawn_argc_is_large", + "spawn_place_is_witness", "loop_contract", - "spawn_exec_memory_limit_le_7", - "spawn_argc_not_eq", - "spawn_argc_is_u64_max", - "spawn_out_of_memory", + "exec_with_block_opcode", ] # return [s for s in files if not any(s.endswith(suffix) for suffix in files_list)] return [f"{project_root}/source/contract/test_cases/{x}" for x in files_list] @@ -87,69 +93,6 @@ def test_02_deploy_and_invoke_demo_failed(self, path): except Exception as e: print(e) - def test_03_stack_overflow(self): - """ - contract link: - https://github.com/gpBlockchain/ckb-test-contracts/blob/main/rust/acceptance-contracts/contracts/spawn_demo/src/spawn_recursive.rs - :return: - """ - self.deploy_and_invoke( - self.Config.MINER_PRIVATE_1, - f"{get_project_root()}/source/contract/test_cases/spawn_recursive", - self.node, - ) - - # @pytest.mark.skip - def test_04_estimate_cycles_bug(self): - """ - https://github.com/gpBlockchain/ckb-test-contracts/blob/main/rust/acceptance-contracts/contracts/spawn_demo/src/spawn_times.rs - send_transaction( big cycle tx ) - return tx; - query tx status - return tx_status == rejected - if status == pending ,is bug - query estimate_cycles - return : ExceededMaximumCycles - if return cycles > 1045122714,is bug - :return: - """ - deploy_hash = self.Contract.deploy_ckb_contract( - self.Config.MINER_PRIVATE_1, - f"{get_project_root()}/source/contract/test_cases/spawn_times", - enable_type_id=True, - api_url=self.node.getClient().url, - ) - self.Miner.miner_until_tx_committed(self.node, deploy_hash) - for i in range(1, 10): - invoke_hash = self.Contract.invoke_ckb_contract( - account_private=self.Config.MINER_PRIVATE_1, - contract_out_point_tx_hash=deploy_hash, - contract_out_point_tx_index=0, - type_script_arg="0x02", - data=f"0x{i:02x}", - hash_type="type", - api_url=self.node.getClient().url, - ) - time.sleep(5) - transaction = self.node.getClient().get_transaction(invoke_hash) - # if transaction["tx_status"]['status'] == "" - if transaction["tx_status"]["status"] == "rejected": - continue - if transaction["tx_status"]["status"] == "pending": - # bug - # es cycle - del transaction["transaction"]["hash"] - with open("./tmp.json", "w") as tmp_file: - tmp_file.write(json.dumps(transaction["transaction"])) - for i in range(5): - try: - result = self.Ckb_cli.estimate_cycles( - "./tmp.json", api_url=self.node.getClient().url - ) - print(f"estimate_cycles:{result}") - except Exception: - pass - def deploy_and_invoke(self, account, path, node, try_count=5): if try_count < 0: raise Exception("try out of times") diff --git a/test_cases/feature/test_get_transaction.py b/test_cases/feature/test_get_transaction.py new file mode 100644 index 0000000..e5dad47 --- /dev/null +++ b/test_cases/feature/test_get_transaction.py @@ -0,0 +1,62 @@ +from framework.basic import CkbTest +import pytest + + +class TestGetTransaction(CkbTest): + + @classmethod + def setup_class(cls): + """ + 1. start 1 ckb node in tmp/get_transaction/node1 node dir + 2. miner 100block + Returns: + + """ + # 1. start 1 ckb node in tmp/get_transaction/node1 node dir + cls.node = cls.CkbNode.init_dev_by_port( + cls.CkbNodeConfigPath.develop, "get_transaction/node1", 8120, 8225 + ) + cls.node.prepare(other_ckb_config={"ckb_tx_pool_max_tx_pool_size": "180_000"}) + cls.node.start() + # 2. miner 100 block + cls.Miner.make_tip_height_number(cls.node, 100) + + @classmethod + def teardown_class(cls): + """ + 1. stop ckb node + 2. clean ckb node tmp dir + Returns: + + """ + cls.node.stop() + cls.node.clean() + + # @pytest.mark.skip("util v118 rc") + def test_get_transaction_by_tx_index(self): + """ + 1. new tx in block + 2. query tx index is null + 3. miner block until tx committed, query tx index is 0x1 + Returns: + + """ + # 1. new tx in block + account = self.Ckb_cli.util_key_info_by_private_key(self.Config.MINER_PRIVATE_1) + tx_hash = self.Ckb_cli.wallet_transfer_by_private_key( + self.Config.MINER_PRIVATE_1, + account["address"]["testnet"], + 100, + self.node.getClient().url, + "1500", + ) + print(f"txHash:{tx_hash}") + # 2. query tx index is null + transaction1 = self.node.getClient().get_transaction(tx_hash) + print(f"tx_index:{transaction1['tx_status']['tx_index']}") + assert transaction1["tx_status"]["tx_index"] is None + # 3. miner block until tx committed, query tx index is 0x1 + self.Miner.miner_until_tx_committed(self.node, tx_hash) + transaction2 = self.node.getClient().get_transaction(tx_hash) + print(f"after miner tx_hash, tx_index:{transaction2['tx_status']['tx_index']}") + assert transaction2["tx_status"]["tx_index"] == "0x1" diff --git a/test_cases/node_compatible/test_before_ckb2023_hardfork.py b/test_cases/node_compatible/test_before_ckb2023_hardfork.py index 7306ad0..db021c9 100644 --- a/test_cases/node_compatible/test_before_ckb2023_hardfork.py +++ b/test_cases/node_compatible/test_before_ckb2023_hardfork.py @@ -119,9 +119,9 @@ def test_03_transfer(self, version, node): def test_04_spawn_tx(self, version, node): """ 1. send spawn tx by data1 . - - return Error: InvalidEcall(2101) + - return Error: InvalidEcall(2603) 2. send spawn tx by type . - - return Error: InvalidEcall(2101) + - return Error: InvalidEcall(2603) :param version: :param node: :return: @@ -140,7 +140,7 @@ def test_04_spawn_tx(self, version, node): invoke_data, api_url=node.getClient().url, ) - expected_error_message = "InvalidEcall(2101)" + expected_error_message = "InvalidEcall(2603)" assert ( expected_error_message in exc_info.value.args[0] ), f"Expected substring '{expected_error_message}' not found in actual string '{exc_info.value.args[0]}'" @@ -156,7 +156,7 @@ def test_04_spawn_tx(self, version, node): invoke_data, api_url=node.getClient().url, ) - expected_error_message = "InvalidEcall(2101)" + expected_error_message = "InvalidEcall(2603)" assert ( expected_error_message in exc_info.value.args[0] ), f"Expected substring '{expected_error_message}' not found in actual string '{exc_info.value.args[0]}'"