mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-05-13 13:11:25 +00:00
Let iwasm return non-zero value when running failed (#1377)
Let iwasm return non-zero value when running failed so that the caller (e.g. test framework) can check the running status according to the return value.
This commit is contained in:
parent
872cc51881
commit
bc86674a45
|
@ -583,6 +583,7 @@ set_wasi_args(void *wasm_module, const char **dir_list, uint32_t dir_list_size,
|
||||||
int
|
int
|
||||||
main(int argc, char *argv[])
|
main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
int32_t ret = -1;
|
||||||
char *wasm_file = NULL;
|
char *wasm_file = NULL;
|
||||||
const char *func_name = NULL;
|
const char *func_name = NULL;
|
||||||
uint8_t *wasm_file_buf = 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")) {
|
if (!strcmp(argv[0], "-f") || !strcmp(argv[0], "--function")) {
|
||||||
argc--, argv++;
|
argc--, argv++;
|
||||||
if (argc < 2) {
|
if (argc < 2) {
|
||||||
print_help();
|
return print_help();
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
func_name = argv[0];
|
func_name = argv[0];
|
||||||
}
|
}
|
||||||
|
@ -651,7 +651,7 @@ main(int argc, char *argv[])
|
||||||
if (dir_list_size >= sizeof(dir_list) / sizeof(char *)) {
|
if (dir_list_size >= sizeof(dir_list) / sizeof(char *)) {
|
||||||
printf("Only allow max dir number %d\n",
|
printf("Only allow max dir number %d\n",
|
||||||
(int)(sizeof(dir_list) / sizeof(char *)));
|
(int)(sizeof(dir_list) / sizeof(char *)));
|
||||||
return -1;
|
return 1;
|
||||||
}
|
}
|
||||||
dir_list[dir_list_size++] = argv[0] + 6;
|
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 *)) {
|
if (env_list_size >= sizeof(env_list) / sizeof(char *)) {
|
||||||
printf("Only allow max env number %d\n",
|
printf("Only allow max env number %d\n",
|
||||||
(int)(sizeof(env_list) / sizeof(char *)));
|
(int)(sizeof(env_list) / sizeof(char *)));
|
||||||
return -1;
|
return 1;
|
||||||
}
|
}
|
||||||
tmp_env = argv[0] + 6;
|
tmp_env = argv[0] + 6;
|
||||||
if (validate_env_str(tmp_env))
|
if (validate_env_str(tmp_env))
|
||||||
|
@ -688,7 +688,7 @@ main(int argc, char *argv[])
|
||||||
if (addr_pool_size >= sizeof(addr_pool) / sizeof(char *)) {
|
if (addr_pool_size >= sizeof(addr_pool) / sizeof(char *)) {
|
||||||
printf("Only allow max address number %d\n",
|
printf("Only allow max address number %d\n",
|
||||||
(int)(sizeof(addr_pool) / sizeof(char *)));
|
(int)(sizeof(addr_pool) / sizeof(char *)));
|
||||||
return -1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
addr_pool[addr_pool_size++] = token;
|
addr_pool[addr_pool_size++] = token;
|
||||||
|
@ -755,6 +755,8 @@ main(int argc, char *argv[])
|
||||||
else
|
else
|
||||||
app_instance_main(wasm_module_inst, argc, argv);
|
app_instance_main(wasm_module_inst, argc, argv);
|
||||||
|
|
||||||
|
ret = 0;
|
||||||
|
|
||||||
/* Deinstantiate module */
|
/* Deinstantiate module */
|
||||||
deinstantiate_module(wasm_module_inst);
|
deinstantiate_module(wasm_module_inst);
|
||||||
|
|
||||||
|
@ -770,7 +772,12 @@ fail1:
|
||||||
/* Destroy runtime environment */
|
/* Destroy runtime environment */
|
||||||
destroy_runtime();
|
destroy_runtime();
|
||||||
|
|
||||||
|
#if WASM_ENABLE_SPEC_TEST != 0
|
||||||
|
(void)ret;
|
||||||
return 0;
|
return 0;
|
||||||
|
#else
|
||||||
|
return ret;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
|
@ -64,6 +64,12 @@ else
|
||||||
App_C_Flags += -DNDEBUG -UEDEBUG -UDEBUG
|
App_C_Flags += -DNDEBUG -UEDEBUG -UDEBUG
|
||||||
endif
|
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_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
|
App_Link_Flags := $(SGX_COMMON_CFLAGS) libvmlib_untrusted.a -L$(SGX_LIBRARY_PATH) -l$(Urts_Library_Name) -lpthread
|
||||||
|
|
||||||
|
|
|
@ -294,6 +294,7 @@ static char global_heap_buf[10 * 1024 * 1024] = { 0 };
|
||||||
int
|
int
|
||||||
main(int argc, char *argv[])
|
main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
int32 ret = -1;
|
||||||
char *wasm_file = NULL;
|
char *wasm_file = NULL;
|
||||||
const char *func_name = NULL;
|
const char *func_name = NULL;
|
||||||
uint8 *wasm_file_buf = NULL;
|
uint8 *wasm_file_buf = NULL;
|
||||||
|
@ -336,8 +337,7 @@ main(int argc, char *argv[])
|
||||||
if (!strcmp(argv[0], "-f") || !strcmp(argv[0], "--function")) {
|
if (!strcmp(argv[0], "-f") || !strcmp(argv[0], "--function")) {
|
||||||
argc--, argv++;
|
argc--, argv++;
|
||||||
if (argc < 2) {
|
if (argc < 2) {
|
||||||
print_help();
|
return print_help();
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
func_name = argv[0];
|
func_name = argv[0];
|
||||||
}
|
}
|
||||||
|
@ -375,7 +375,7 @@ main(int argc, char *argv[])
|
||||||
if (dir_list_size >= sizeof(dir_list) / sizeof(char *)) {
|
if (dir_list_size >= sizeof(dir_list) / sizeof(char *)) {
|
||||||
printf("Only allow max dir number %d\n",
|
printf("Only allow max dir number %d\n",
|
||||||
(int)(sizeof(dir_list) / sizeof(char *)));
|
(int)(sizeof(dir_list) / sizeof(char *)));
|
||||||
return -1;
|
return 1;
|
||||||
}
|
}
|
||||||
dir_list[dir_list_size++] = argv[0] + 6;
|
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 *)) {
|
if (env_list_size >= sizeof(env_list) / sizeof(char *)) {
|
||||||
printf("Only allow max env number %d\n",
|
printf("Only allow max env number %d\n",
|
||||||
(int)(sizeof(env_list) / sizeof(char *)));
|
(int)(sizeof(env_list) / sizeof(char *)));
|
||||||
return -1;
|
return 1;
|
||||||
}
|
}
|
||||||
tmp_env = argv[0] + 6;
|
tmp_env = argv[0] + 6;
|
||||||
if (validate_env_str(tmp_env))
|
if (validate_env_str(tmp_env))
|
||||||
|
@ -412,7 +412,7 @@ main(int argc, char *argv[])
|
||||||
if (addr_pool_size >= sizeof(addr_pool) / sizeof(char *)) {
|
if (addr_pool_size >= sizeof(addr_pool) / sizeof(char *)) {
|
||||||
printf("Only allow max address number %d\n",
|
printf("Only allow max address number %d\n",
|
||||||
(int)(sizeof(addr_pool) / sizeof(char *)));
|
(int)(sizeof(addr_pool) / sizeof(char *)));
|
||||||
return -1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
addr_pool[addr_pool_size++] = token;
|
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 *)) {
|
if (native_lib_count >= sizeof(native_lib_list) / sizeof(char *)) {
|
||||||
printf("Only allow max native lib number %d\n",
|
printf("Only allow max native lib number %d\n",
|
||||||
(int)(sizeof(native_lib_list) / sizeof(char *)));
|
(int)(sizeof(native_lib_list) / sizeof(char *)));
|
||||||
return -1;
|
return 1;
|
||||||
}
|
}
|
||||||
native_lib_list[native_lib_count++] = argv[0] + 13;
|
native_lib_list[native_lib_count++] = argv[0] + 13;
|
||||||
}
|
}
|
||||||
|
@ -570,6 +570,8 @@ main(int argc, char *argv[])
|
||||||
else
|
else
|
||||||
app_instance_main(wasm_module_inst);
|
app_instance_main(wasm_module_inst);
|
||||||
|
|
||||||
|
ret = 0;
|
||||||
|
|
||||||
/* destroy the module instance */
|
/* destroy the module instance */
|
||||||
wasm_runtime_deinstantiate(wasm_module_inst);
|
wasm_runtime_deinstantiate(wasm_module_inst);
|
||||||
|
|
||||||
|
@ -594,5 +596,11 @@ fail1:
|
||||||
|
|
||||||
/* destroy runtime environment */
|
/* destroy runtime environment */
|
||||||
wasm_runtime_destroy();
|
wasm_runtime_destroy();
|
||||||
|
|
||||||
|
#if WASM_ENABLE_SPEC_TEST != 0
|
||||||
|
(void)ret;
|
||||||
return 0;
|
return 0;
|
||||||
|
#else
|
||||||
|
return ret;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
|
@ -223,6 +223,7 @@ moudle_destroyer(uint8 *buffer, uint32 size)
|
||||||
int
|
int
|
||||||
main(int argc, char *argv[])
|
main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
int32 ret = -1;
|
||||||
char *wasm_file = NULL;
|
char *wasm_file = NULL;
|
||||||
const char *func_name = NULL;
|
const char *func_name = NULL;
|
||||||
uint8 *wasm_file_buf = NULL;
|
uint8 *wasm_file_buf = NULL;
|
||||||
|
@ -254,8 +255,7 @@ main(int argc, char *argv[])
|
||||||
if (!strcmp(argv[0], "-f") || !strcmp(argv[0], "--function")) {
|
if (!strcmp(argv[0], "-f") || !strcmp(argv[0], "--function")) {
|
||||||
argc--, argv++;
|
argc--, argv++;
|
||||||
if (argc < 2) {
|
if (argc < 2) {
|
||||||
print_help();
|
return print_help();
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
func_name = argv[0];
|
func_name = argv[0];
|
||||||
}
|
}
|
||||||
|
@ -286,7 +286,7 @@ main(int argc, char *argv[])
|
||||||
if (dir_list_size >= sizeof(dir_list) / sizeof(char *)) {
|
if (dir_list_size >= sizeof(dir_list) / sizeof(char *)) {
|
||||||
printf("Only allow max dir number %d\n",
|
printf("Only allow max dir number %d\n",
|
||||||
(int)(sizeof(dir_list) / sizeof(char *)));
|
(int)(sizeof(dir_list) / sizeof(char *)));
|
||||||
return -1;
|
return 1;
|
||||||
}
|
}
|
||||||
dir_list[dir_list_size++] = argv[0] + 6;
|
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 *)) {
|
if (env_list_size >= sizeof(env_list) / sizeof(char *)) {
|
||||||
printf("Only allow max env number %d\n",
|
printf("Only allow max env number %d\n",
|
||||||
(int)(sizeof(env_list) / sizeof(char *)));
|
(int)(sizeof(env_list) / sizeof(char *)));
|
||||||
return -1;
|
return 1;
|
||||||
}
|
}
|
||||||
tmp_env = argv[0] + 6;
|
tmp_env = argv[0] + 6;
|
||||||
if (validate_env_str(tmp_env))
|
if (validate_env_str(tmp_env))
|
||||||
|
@ -437,6 +437,8 @@ main(int argc, char *argv[])
|
||||||
else
|
else
|
||||||
app_instance_main(wasm_module_inst);
|
app_instance_main(wasm_module_inst);
|
||||||
|
|
||||||
|
ret = 0;
|
||||||
|
|
||||||
/* destroy the module instance */
|
/* destroy the module instance */
|
||||||
wasm_runtime_deinstantiate(wasm_module_inst);
|
wasm_runtime_deinstantiate(wasm_module_inst);
|
||||||
|
|
||||||
|
@ -454,5 +456,11 @@ fail2:
|
||||||
fail1:
|
fail1:
|
||||||
/* destroy runtime environment */
|
/* destroy runtime environment */
|
||||||
wasm_runtime_destroy();
|
wasm_runtime_destroy();
|
||||||
|
|
||||||
|
#if WASM_ENABLE_SPEC_TEST != 0
|
||||||
|
(void)ret;
|
||||||
return 0;
|
return 0;
|
||||||
|
#else
|
||||||
|
return ret;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user