diff --git a/samples/checked-api/CMakeLists.txt b/samples/checked-api/CMakeLists.txt index e3015b9c0..d1ea8c6e4 100644 --- a/samples/checked-api/CMakeLists.txt +++ b/samples/checked-api/CMakeLists.txt @@ -5,9 +5,8 @@ cmake_minimum_required (VERSION 3.14) project(checked_api_sample) -if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE Release) -endif() +# assertion required +set(CMAKE_BUILD_TYPE Debug) set(CMAKE_C_STANDARD 23) @@ -54,3 +53,9 @@ ExternalProject_Add(wasm BUILD_COMMAND ${CMAKE_COMMAND} --build build INSTALL_COMMAND ${CMAKE_COMMAND} --install build --prefix ${CMAKE_CURRENT_BINARY_DIR} ) + +enable_testing() +add_test(NAME checked_api_sample_test + COMMAND ${PROJECT_NAME} + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} +) diff --git a/samples/checked-api/src/demo.c b/samples/checked-api/src/demo.c index 4db49fa47..5546bd2f3 100644 --- a/samples/checked-api/src/demo.c +++ b/samples/checked-api/src/demo.c @@ -80,8 +80,18 @@ main(int argc, char *argv_main[]) arguments); VERIFY_API_RESULT(wasm_runtime_call_wasm_a_checked, api_result, release_runtime); - printf("Native finished calling wasm function: fib, returned: %d\n", - result[0].of.i32); + printf("Native finished calling wasm function: fib(%d), returned: %d\n", + arguments[0].of.i32, result[0].of.i32); + bh_assert(result[0].of.i32 == 8); + + arguments[0].of.i32 = 2; + api_result = wasm_runtime_call_wasm_a_checked(exec_env, func, 1, result, 1, + arguments); + VERIFY_API_RESULT(wasm_runtime_call_wasm_a_checked, api_result, + release_runtime); + printf("Native finished calling wasm function: fib(%d), returned: %d\n", + arguments[0].of.i32, result[0].of.i32); + bh_assert(result[0].of.i32 == 1); ret = EXIT_SUCCESS; diff --git a/samples/checked-api/wasm-apps/fib.c b/samples/checked-api/wasm-apps/fib.c index 22a63b9b1..6603dfc59 100644 --- a/samples/checked-api/wasm-apps/fib.c +++ b/samples/checked-api/wasm-apps/fib.c @@ -17,7 +17,6 @@ __attribute__((export_name("fib"))) int fib(int n) { int result = fibonacci(n); - printf("fibonacci(%d)=%d\n", n, result); return result; }