diff --git a/product-mini/platforms/linux-sgx/enclave-sample/App/App.cpp b/product-mini/platforms/linux-sgx/enclave-sample/App/App.cpp index ba269d34f..099a96dc2 100644 --- a/product-mini/platforms/linux-sgx/enclave-sample/App/App.cpp +++ b/product-mini/platforms/linux-sgx/enclave-sample/App/App.cpp @@ -583,6 +583,7 @@ set_wasi_args(void *wasm_module, const char **dir_list, uint32_t dir_list_size, int main(int argc, char *argv[]) { + int32_t ret = -1; char *wasm_file = NULL; const char *func_name = NULL; uint8_t *wasm_file_buf = NULL; @@ -622,8 +623,7 @@ main(int argc, char *argv[]) if (!strcmp(argv[0], "-f") || !strcmp(argv[0], "--function")) { argc--, argv++; if (argc < 2) { - print_help(); - return 0; + return print_help(); } func_name = argv[0]; } @@ -651,7 +651,7 @@ main(int argc, char *argv[]) if (dir_list_size >= sizeof(dir_list) / sizeof(char *)) { printf("Only allow max dir number %d\n", (int)(sizeof(dir_list) / sizeof(char *))); - return -1; + return 1; } dir_list[dir_list_size++] = argv[0] + 6; } @@ -663,7 +663,7 @@ main(int argc, char *argv[]) if (env_list_size >= sizeof(env_list) / sizeof(char *)) { printf("Only allow max env number %d\n", (int)(sizeof(env_list) / sizeof(char *))); - return -1; + return 1; } tmp_env = argv[0] + 6; if (validate_env_str(tmp_env)) @@ -688,7 +688,7 @@ main(int argc, char *argv[]) if (addr_pool_size >= sizeof(addr_pool) / sizeof(char *)) { printf("Only allow max address number %d\n", (int)(sizeof(addr_pool) / sizeof(char *))); - return -1; + return 1; } addr_pool[addr_pool_size++] = token; @@ -755,6 +755,8 @@ main(int argc, char *argv[]) else app_instance_main(wasm_module_inst, argc, argv); + ret = 0; + /* Deinstantiate module */ deinstantiate_module(wasm_module_inst); @@ -770,7 +772,12 @@ fail1: /* Destroy runtime environment */ destroy_runtime(); +#if WASM_ENABLE_SPEC_TEST != 0 + (void)ret; return 0; +#else + return ret; +#endif } int diff --git a/product-mini/platforms/linux-sgx/enclave-sample/Makefile b/product-mini/platforms/linux-sgx/enclave-sample/Makefile index f06b5b89d..45389628c 100644 --- a/product-mini/platforms/linux-sgx/enclave-sample/Makefile +++ b/product-mini/platforms/linux-sgx/enclave-sample/Makefile @@ -64,6 +64,12 @@ else App_C_Flags += -DNDEBUG -UEDEBUG -UDEBUG endif +ifeq ($(SPEC_TEST), 1) + App_C_Flags += -DWASM_ENABLE_SPEC_TEST=1 +else + App_C_Flags += -DWASM_ENABLE_SPEC_TEST=0 +endif + App_Cpp_Flags := $(App_C_Flags) -std=c++11 App_Link_Flags := $(SGX_COMMON_CFLAGS) libvmlib_untrusted.a -L$(SGX_LIBRARY_PATH) -l$(Urts_Library_Name) -lpthread diff --git a/product-mini/platforms/posix/main.c b/product-mini/platforms/posix/main.c index 4cbc47e00..5fc89432d 100644 --- a/product-mini/platforms/posix/main.c +++ b/product-mini/platforms/posix/main.c @@ -294,6 +294,7 @@ static char global_heap_buf[10 * 1024 * 1024] = { 0 }; int main(int argc, char *argv[]) { + int32 ret = -1; char *wasm_file = NULL; const char *func_name = NULL; uint8 *wasm_file_buf = NULL; @@ -336,8 +337,7 @@ main(int argc, char *argv[]) if (!strcmp(argv[0], "-f") || !strcmp(argv[0], "--function")) { argc--, argv++; if (argc < 2) { - print_help(); - return 0; + return print_help(); } func_name = argv[0]; } @@ -375,7 +375,7 @@ main(int argc, char *argv[]) if (dir_list_size >= sizeof(dir_list) / sizeof(char *)) { printf("Only allow max dir number %d\n", (int)(sizeof(dir_list) / sizeof(char *))); - return -1; + return 1; } dir_list[dir_list_size++] = argv[0] + 6; } @@ -387,7 +387,7 @@ main(int argc, char *argv[]) if (env_list_size >= sizeof(env_list) / sizeof(char *)) { printf("Only allow max env number %d\n", (int)(sizeof(env_list) / sizeof(char *))); - return -1; + return 1; } tmp_env = argv[0] + 6; if (validate_env_str(tmp_env)) @@ -412,7 +412,7 @@ main(int argc, char *argv[]) if (addr_pool_size >= sizeof(addr_pool) / sizeof(char *)) { printf("Only allow max address number %d\n", (int)(sizeof(addr_pool) / sizeof(char *))); - return -1; + return 1; } addr_pool[addr_pool_size++] = token; @@ -427,7 +427,7 @@ main(int argc, char *argv[]) if (native_lib_count >= sizeof(native_lib_list) / sizeof(char *)) { printf("Only allow max native lib number %d\n", (int)(sizeof(native_lib_list) / sizeof(char *))); - return -1; + return 1; } native_lib_list[native_lib_count++] = argv[0] + 13; } @@ -570,6 +570,8 @@ main(int argc, char *argv[]) else app_instance_main(wasm_module_inst); + ret = 0; + /* destroy the module instance */ wasm_runtime_deinstantiate(wasm_module_inst); @@ -594,5 +596,11 @@ fail1: /* destroy runtime environment */ wasm_runtime_destroy(); + +#if WASM_ENABLE_SPEC_TEST != 0 + (void)ret; return 0; +#else + return ret; +#endif } diff --git a/product-mini/platforms/windows/main.c b/product-mini/platforms/windows/main.c index 0276c1dc7..f044dc66d 100644 --- a/product-mini/platforms/windows/main.c +++ b/product-mini/platforms/windows/main.c @@ -223,6 +223,7 @@ moudle_destroyer(uint8 *buffer, uint32 size) int main(int argc, char *argv[]) { + int32 ret = -1; char *wasm_file = NULL; const char *func_name = NULL; uint8 *wasm_file_buf = NULL; @@ -254,8 +255,7 @@ main(int argc, char *argv[]) if (!strcmp(argv[0], "-f") || !strcmp(argv[0], "--function")) { argc--, argv++; if (argc < 2) { - print_help(); - return 0; + return print_help(); } func_name = argv[0]; } @@ -286,7 +286,7 @@ main(int argc, char *argv[]) if (dir_list_size >= sizeof(dir_list) / sizeof(char *)) { printf("Only allow max dir number %d\n", (int)(sizeof(dir_list) / sizeof(char *))); - return -1; + return 1; } dir_list[dir_list_size++] = argv[0] + 6; } @@ -298,7 +298,7 @@ main(int argc, char *argv[]) if (env_list_size >= sizeof(env_list) / sizeof(char *)) { printf("Only allow max env number %d\n", (int)(sizeof(env_list) / sizeof(char *))); - return -1; + return 1; } tmp_env = argv[0] + 6; if (validate_env_str(tmp_env)) @@ -437,6 +437,8 @@ main(int argc, char *argv[]) else app_instance_main(wasm_module_inst); + ret = 0; + /* destroy the module instance */ wasm_runtime_deinstantiate(wasm_module_inst); @@ -454,5 +456,11 @@ fail2: fail1: /* destroy runtime environment */ wasm_runtime_destroy(); + +#if WASM_ENABLE_SPEC_TEST != 0 + (void)ret; return 0; +#else + return ret; +#endif }