mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-02-11 09:25:20 +00:00
72 lines
2.8 KiB
Python
Executable File
72 lines
2.8 KiB
Python
Executable File
#!python3
|
|
#
|
|
# Copyright (C) 2019 Intel Corporation. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
#
|
|
|
|
import os
|
|
from collections import OrderedDict
|
|
|
|
|
|
def main():
|
|
IWASM_CMD = "../../../wamr/product-mini/platforms/linux/build/iwasm"
|
|
|
|
IWASM_CLI_ARGS: list[str] = [
|
|
"--heap-size=16384 --interp",
|
|
"--heap-size=16384 --fast-jit",
|
|
"--heap-size=16384 --llvm-jit",
|
|
"--heap-size=16384 --multi-tier-jit",
|
|
"--heap-size=16384 --llvm-jit --llvm-jit-size-level=1",
|
|
"--heap-size=16384 --llvm-jit --llvm-jit-size-level=2 --llvm-jit-opt-level=1"
|
|
]
|
|
|
|
COMPILE_FLAGS: list[str] = [
|
|
"-DWAMR_BUILD_FAST_INTERP=0 -DWAMR_BUILD_INTERP=1 -DWAMR_BUILD_FAST_JIT=0 -DWAMR_BUILD_JIT=0",
|
|
"-DWAMR_BUILD_FAST_JIT=1",
|
|
"-DWAMR_BUILD_FAST_JIT=0 -DWAMR_BUILD_JIT=1",
|
|
"-DWAMR_BUILD_FAST_JIT=1 -DWAMR_BUILD_JIT=1 -DWAMR_BUILD_LAZY_JIT=1",
|
|
"-DWAMR_BUILD_FAST_JIT=1 -DWAMR_BUILD_JIT=1 -DWAMR_BUILD_LAZY_JIT=0",
|
|
]
|
|
|
|
# Python 3.7+: Dictionary iteration order is guaranteed to be in order of insertion.
|
|
# just to be safe, using orderreddict
|
|
# key: value -> compile mode, {"compile_flag": CMake compile flag, "iwasm_cli_args": array of CLI args tested}
|
|
test_options = OrderedDict({
|
|
"INTERP": {"compile_flag": COMPILE_FLAGS[0], "iwasm_cli_args": IWASM_CLI_ARGS[:1]},
|
|
"FAST_JIT": {"compile_flag": COMPILE_FLAGS[1], "iwasm_cli_args": IWASM_CLI_ARGS[:2]},
|
|
"LLVM_JIT": {"compile_flag": COMPILE_FLAGS[2], "iwasm_cli_args": [IWASM_CLI_ARGS[0], IWASM_CLI_ARGS[2]]},
|
|
"MULTI_TIER_JIT": {"compile_flag": COMPILE_FLAGS[3], "iwasm_cli_args": IWASM_CLI_ARGS},
|
|
"EAGER_JIT_WITH_BOTH_JIT": {"compile_flag": COMPILE_FLAGS[4],
|
|
"iwasm_cli_args": IWASM_CLI_ARGS[:3] + IWASM_CLI_ARGS[4:]}
|
|
})
|
|
|
|
build_cmd = "./build_iwasm.sh \"{build_flag}\""
|
|
wasm_file = "wasm-apps/mytest.wasm"
|
|
run_cmd = "{IWASM_CMD} {cli_args} " + wasm_file
|
|
|
|
for compile_mode in test_options.keys():
|
|
build_flag: str = test_options[compile_mode]["compile_flag"]
|
|
cli_args_li: list = test_options[compile_mode]["iwasm_cli_args"]
|
|
# compile
|
|
print("\r\n\r\nCompile iwasm in {} mode".format(compile_mode))
|
|
ret = os.system(build_cmd.format(build_flag=build_flag))
|
|
if ret:
|
|
print("Compile failed")
|
|
# iter over cli args combination
|
|
for cli_args in cli_args_li:
|
|
print(run_cmd.format(IWASM_CMD=IWASM_CMD, cli_args=cli_args))
|
|
ret = os.system(run_cmd.format(
|
|
IWASM_CMD=IWASM_CMD, cli_args=cli_args))
|
|
if ret:
|
|
break
|
|
else: # if inner for loop finish normally
|
|
continue
|
|
|
|
# if break from inner for loop
|
|
print("Run failed")
|
|
break
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|