Merge branch main into dev/wasi-libc-windows
This commit is contained in:
19
tests/wamr-test-suites/wasi-test-script/pipe.py
Normal file
19
tests/wamr-test-suites/wasi-test-script/pipe.py
Normal file
@ -0,0 +1,19 @@
|
||||
#! /usr/bin/env python3
|
||||
|
||||
# Copyright (C) 2023 YAMAMOTO Takashi
|
||||
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
|
||||
# This is a copy of https://github.com/yamt/toywasm/blob/master/test/pipe.py
|
||||
|
||||
# keep stdout open until the peer closes it
|
||||
|
||||
import sys
|
||||
import select
|
||||
|
||||
p = select.poll()
|
||||
p.register(sys.stdout, select.POLLHUP)
|
||||
# http://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=57369
|
||||
while True:
|
||||
l = p.poll(1)
|
||||
if l:
|
||||
break
|
||||
@ -5,6 +5,8 @@
|
||||
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||
#
|
||||
|
||||
THIS_DIR=$(cd $(dirname $0) && pwd -P)
|
||||
|
||||
readonly MODE=$1
|
||||
readonly TARGET=$2
|
||||
|
||||
@ -28,25 +30,23 @@ readonly IWASM_CMD="${IWASM_EXE} \
|
||||
--allow-resolve=google-public-dns-a.google.com \
|
||||
--addr-pool=::1/128,127.0.0.1/32"
|
||||
|
||||
readonly IWASM_CMD_STRESS="${IWASM_CMD} --max-threads=8"
|
||||
readonly IWASM_CMD_STRESS="${IWASM_CMD} --max-threads=12"
|
||||
readonly WAMRC_CMD="${WORK_DIR}/../../../../wamr-compiler/build/wamrc"
|
||||
readonly C_TESTS="tests/c/testsuite/"
|
||||
readonly RUST_TESTS="tests/rust/testsuite/"
|
||||
readonly ASSEMBLYSCRIPT_TESTS="tests/assemblyscript/testsuite/"
|
||||
readonly THREAD_PROPOSAL_TESTS="tests/proposals/wasi-threads/"
|
||||
readonly THREAD_INTERNAL_TESTS="${WAMR_DIR}/core/iwasm/libraries/lib-wasi-threads/test/"
|
||||
readonly THREAD_STRESS_TESTS="${WAMR_DIR}/core/iwasm/libraries/lib-wasi-threads/stress-test/"
|
||||
readonly LIB_SOCKET_TESTS="${WAMR_DIR}/core/iwasm/libraries/lib-socket/test/"
|
||||
readonly STRESS_TESTS=("spawn_stress_test.wasm" "stress_test_threads_creation.wasm")
|
||||
|
||||
run_aot_tests () {
|
||||
local tests=("$@")
|
||||
local iwasm="${IWASM_CMD}"
|
||||
for test_wasm in ${tests[@]}; do
|
||||
local extra_stress_flags=""
|
||||
for stress_test in "${STRESS_TESTS[@]}"; do
|
||||
if [ "$test_wasm" == "$stress_test" ]; then
|
||||
iwasm="${IWASM_CMD_STRESS}"
|
||||
fi
|
||||
done
|
||||
local iwasm="${IWASM_CMD}"
|
||||
if [[ $test_wasm =~ "stress" ]]; then
|
||||
iwasm="${IWASM_CMD_STRESS}"
|
||||
fi
|
||||
|
||||
test_aot="${test_wasm%.wasm}.aot"
|
||||
test_json="${test_wasm%.wasm}.json"
|
||||
@ -65,8 +65,8 @@ run_aot_tests () {
|
||||
expected=$(jq .exit_code ${test_json})
|
||||
fi
|
||||
|
||||
${IWASM_CMD} $extra_stress_flags $test_aot
|
||||
ret=${PIPESTATUS[0]}
|
||||
$PYTHON_EXE ${THIS_DIR}/pipe.py | ${iwasm} $test_aot
|
||||
ret=${PIPESTATUS[1]}
|
||||
|
||||
echo "expected=$expected, actual=$ret"
|
||||
if [[ $expected != "" ]] && [[ $expected != $ret ]];then
|
||||
@ -79,33 +79,30 @@ if [[ $MODE != "aot" ]];then
|
||||
$PYTHON_EXE -m venv wasi-env && source wasi-env/${VENV_BIN_DIR}/activate
|
||||
$PYTHON_EXE -m pip install -r test-runner/requirements.txt
|
||||
|
||||
# Stress tests require max-threads=8 so they're executed separately
|
||||
for stress_test in "${STRESS_TESTS[@]}"; do
|
||||
if [[ -e "${THREAD_INTERNAL_TESTS}${stress_test}" ]]; then
|
||||
echo "${stress_test}" is a stress test
|
||||
${IWASM_CMD_STRESS} ${THREAD_INTERNAL_TESTS}${stress_test}
|
||||
ret=${PIPESTATUS[0]}
|
||||
if [ "${ret}" -ne 0 ]; then
|
||||
echo "Stress test ${stress_test} FAILED with code " ${ret}
|
||||
exit_code=${ret}
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
TEST_RUNTIME_EXE="${IWASM_CMD}" $PYTHON_EXE test-runner/wasi_test_runner.py \
|
||||
export TEST_RUNTIME_EXE="${IWASM_CMD}"
|
||||
$PYTHON_EXE ${THIS_DIR}/pipe.py | $PYTHON_EXE test-runner/wasi_test_runner.py \
|
||||
-r adapters/wasm-micro-runtime.py \
|
||||
-t \
|
||||
${C_TESTS} \
|
||||
${RUST_TESTS} \
|
||||
${ASSEMBLYSCRIPT_TESTS} \
|
||||
${THREAD_PROPOSAL_TESTS} \
|
||||
${THREAD_INTERNAL_TESTS} \
|
||||
${LIB_SOCKET_TESTS} \
|
||||
--exclude-filter "${THREAD_INTERNAL_TESTS}skip.json"
|
||||
|
||||
ret=${PIPESTATUS[0]}
|
||||
if [ "${ret}" -ne 0 ]; then
|
||||
exit_code=${ret}
|
||||
ret=${PIPESTATUS[1]}
|
||||
|
||||
TEST_RUNTIME_EXE="${IWASM_CMD_STRESS}" $PYTHON_EXE test-runner/wasi_test_runner.py \
|
||||
-r adapters/wasm-micro-runtime.py \
|
||||
-t \
|
||||
${THREAD_STRESS_TESTS}
|
||||
|
||||
if [ "${ret}" -eq 0 ]; then
|
||||
ret=${PIPESTATUS[0]}
|
||||
fi
|
||||
|
||||
exit_code=${ret}
|
||||
|
||||
deactivate
|
||||
else
|
||||
target_option=""
|
||||
@ -114,7 +111,7 @@ else
|
||||
fi
|
||||
|
||||
exit_code=0
|
||||
for testsuite in ${THREAD_PROPOSAL_TESTS} ${THREAD_INTERNAL_TESTS}; do
|
||||
for testsuite in ${THREAD_STRESS_TESTS} ${THREAD_PROPOSAL_TESTS} ${THREAD_INTERNAL_TESTS}; do
|
||||
tests=$(ls ${testsuite}*.wasm)
|
||||
tests_array=($tests)
|
||||
run_aot_tests "${tests_array[@]}"
|
||||
|
||||
Reference in New Issue
Block a user