Update unit test cases (#4214)
* Update gc unit test cases * Update aot stack frame unit test cases
This commit is contained in:
@ -17,6 +17,7 @@ set (WAMR_BUILD_LIBC_BUILTIN 0)
|
||||
set (WAMR_BUILD_MULTI_MODULE 0)
|
||||
set (WAMR_DISABLE_HW_BOUND_CHECK 1)
|
||||
set (WAMR_DISABLE_WRITE_GS_BASE 1)
|
||||
set (WAMR_BUILD_GC 1)
|
||||
|
||||
include (../unit_common.cmake)
|
||||
|
||||
@ -31,15 +32,21 @@ file (GLOB_RECURSE source_all ${CMAKE_CURRENT_SOURCE_DIR}/*.cc)
|
||||
set (UNIT_SOURCE ${source_all})
|
||||
|
||||
set (unit_test_sources
|
||||
${UNIT_SOURCE}
|
||||
${PLATFORM_SHARED_SOURCE}
|
||||
${UTILS_SHARED_SOURCE}
|
||||
${MEM_ALLOC_SHARED_SOURCE}
|
||||
${NATIVE_INTERFACE_SOURCE}
|
||||
${IWASM_COMMON_SOURCE}
|
||||
${IWASM_INTERP_SOURCE}
|
||||
${IWASM_AOT_SOURCE}
|
||||
${WASM_APP_LIB_SOURCE_ALL}
|
||||
${UNIT_SOURCE}
|
||||
${WAMR_RUNTIME_LIB_SOURCE}
|
||||
${UNCOMMON_SHARED_SOURCE}
|
||||
${SRC_LIST}
|
||||
${PLATFORM_SHARED_SOURCE}
|
||||
${UTILS_SHARED_SOURCE}
|
||||
${MEM_ALLOC_SHARED_SOURCE}
|
||||
${LIB_HOST_AGENT_SOURCE}
|
||||
${NATIVE_INTERFACE_SOURCE}
|
||||
${LIBC_BUILTIN_SOURCE}
|
||||
${IWASM_COMMON_SOURCE}
|
||||
${IWASM_INTERP_SOURCE}
|
||||
${IWASM_AOT_SOURCE}
|
||||
${IWASM_COMPL_SOURCE}
|
||||
${WASM_APP_LIB_SOURCE_ALL}
|
||||
)
|
||||
|
||||
# Automatically build wasm-apps for this test
|
||||
|
||||
@ -162,57 +162,6 @@ TEST_F(AOTStackFrameTest, test1)
|
||||
exec_env = wasm_runtime_create_exec_env(module_inst, 8 * 1024);
|
||||
ASSERT_TRUE(exec_env != NULL);
|
||||
|
||||
func_inst = wasm_runtime_lookup_function(module_inst, "test1");
|
||||
ASSERT_TRUE(func_inst != NULL);
|
||||
|
||||
argv[0] = 33;
|
||||
argv[1] = 44;
|
||||
wasm_runtime_call_wasm(exec_env, func_inst, 2, argv);
|
||||
ASSERT_TRUE(wasm_runtime_get_exception(module_inst));
|
||||
|
||||
frames = AOTStackFrameTest::my_frames;
|
||||
frame_num = AOTStackFrameTest::my_frame_num;
|
||||
|
||||
ASSERT_TRUE(frames != NULL);
|
||||
ASSERT_TRUE(frame_num == 1);
|
||||
|
||||
ASSERT_TRUE(frames[0]->lp[0] == 33);
|
||||
ASSERT_TRUE(frames[0]->lp[1] == 44);
|
||||
ASSERT_TRUE(frames[0]->lp[2] == 0x11223344);
|
||||
ASSERT_TRUE(*(uint64 *)(frames[0]->lp + 3) == 0x12345678ABCDEF99LL);
|
||||
ASSERT_TRUE(*(float *)(frames[0]->lp + 5) == 5566.7788f);
|
||||
ASSERT_TRUE(*(double *)(frames[0]->lp + 6) == 99887766.55443322);
|
||||
|
||||
wasm_runtime_destroy_exec_env(exec_env);
|
||||
exec_env = NULL;
|
||||
|
||||
wasm_runtime_deinstantiate(module_inst);
|
||||
module_inst = NULL;
|
||||
|
||||
wasm_runtime_unload(module);
|
||||
module = NULL;
|
||||
}
|
||||
|
||||
TEST_F(AOTStackFrameTest, test2)
|
||||
{
|
||||
MyAOTFrame *frame, **frames;
|
||||
uint32 frame_num;
|
||||
|
||||
aot_set_stack_frame_callback(aot_stack_frame_cb);
|
||||
|
||||
bh_memcpy_s(test_aot_buf, sizeof(test_aot_buf), test_aot, sizeof(test_aot));
|
||||
|
||||
module = wasm_runtime_load(test_aot_buf, sizeof(test_aot), error_buf,
|
||||
sizeof(error_buf));
|
||||
ASSERT_TRUE(module != NULL);
|
||||
|
||||
module_inst = wasm_runtime_instantiate(module, 16384, 0, error_buf,
|
||||
sizeof(error_buf));
|
||||
ASSERT_TRUE(module_inst != NULL);
|
||||
|
||||
exec_env = wasm_runtime_create_exec_env(module_inst, 8 * 1024);
|
||||
ASSERT_TRUE(exec_env != NULL);
|
||||
|
||||
func_inst = wasm_runtime_lookup_function(module_inst, "test2");
|
||||
ASSERT_TRUE(func_inst != NULL);
|
||||
|
||||
@ -233,11 +182,9 @@ TEST_F(AOTStackFrameTest, test2)
|
||||
ASSERT_TRUE(*(uint64 *)(frames[0]->lp + 3) == 0x12345678ABCDEF99LL);
|
||||
ASSERT_TRUE(*(float *)(frames[0]->lp + 5) == 5566.7788f);
|
||||
ASSERT_TRUE(*(double *)(frames[0]->lp + 6) == 99887766.55443322);
|
||||
ASSERT_TRUE(frames[0]->lp[8] == 0x1234);
|
||||
ASSERT_TRUE(frames[0]->lp[9] == 0x5678);
|
||||
}
|
||||
|
||||
TEST_F(AOTStackFrameTest, test3)
|
||||
TEST_F(AOTStackFrameTest, test2)
|
||||
{
|
||||
MyAOTFrame *frame, **frames;
|
||||
uint32 frame_num;
|
||||
@ -271,18 +218,14 @@ TEST_F(AOTStackFrameTest, test3)
|
||||
ASSERT_TRUE(frames != NULL);
|
||||
ASSERT_TRUE(frame_num == 2);
|
||||
|
||||
ASSERT_TRUE(frames[0]->sp - frames[0]->lp == 5);
|
||||
ASSERT_TRUE(frames[0]->ip_offset == 24);
|
||||
// 5(i32) + 1(i64) local variables, occupied 7 * 4 bytes
|
||||
ASSERT_TRUE(frames[0]->sp - frames[0]->lp == 7);
|
||||
|
||||
// offset of ip from module load address
|
||||
ASSERT_TRUE(frames[0]->ip_offset == 163);
|
||||
|
||||
ASSERT_TRUE(frames[0]->lp[0] == 1234);
|
||||
ASSERT_TRUE(frames[0]->lp[1] == 5678);
|
||||
ASSERT_TRUE(frames[0]->lp[2] == 0x11223344);
|
||||
ASSERT_TRUE(*(uint64 *)(frames[0]->lp + 3) == 0x12345678ABCDEF99LL);
|
||||
|
||||
ASSERT_TRUE(frames[1]->lp[0] == 0x1234);
|
||||
ASSERT_TRUE(frames[1]->lp[1] == 0x5678);
|
||||
ASSERT_TRUE(frames[1]->lp[2] == 0x11223344);
|
||||
ASSERT_TRUE(*(uint64 *)(frames[1]->lp + 3) == 0x12345678ABCDEF99LL);
|
||||
ASSERT_TRUE(*(float *)(frames[1]->lp + 5) == 5566.7788f);
|
||||
ASSERT_TRUE(*(double *)(frames[1]->lp + 6) == 99887766.55443322);
|
||||
}
|
||||
|
||||
@ -13,7 +13,7 @@ add_custom_target(aot-stack-frame-test-wasm ALL
|
||||
-o ${CMAKE_CURRENT_BINARY_DIR}/test.wasm
|
||||
${CMAKE_CURRENT_LIST_DIR}/test.wast
|
||||
&& ${CMAKE_CURRENT_BINARY_DIR}/build-wamrc/wamrc
|
||||
--enable-dump-call-stack --bounds-checks=1
|
||||
--enable-dump-call-stack --bounds-checks=1 --enable-gc
|
||||
-o ${CMAKE_CURRENT_BINARY_DIR}/test.aot
|
||||
${CMAKE_CURRENT_BINARY_DIR}/test.wasm
|
||||
&& cmake -B ${CMAKE_CURRENT_BINARY_DIR}/build-binarydump
|
||||
|
||||
Reference in New Issue
Block a user