mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-05-13 21:21:22 +00:00
feat: Integrate wasi test suite to wamr-test-suites and CI (#1832)
Add [wasi-testsuite](https://github.com/WebAssembly/wasi-testsuite) to set of tests executed from `test_wamr.sh`. Additional description here: #1761
This commit is contained in:
parent
bf2be805f9
commit
c5b7b9d8df
|
@ -61,6 +61,7 @@ env:
|
||||||
SIMD_TEST_OPTIONS: "-s spec -b -S -P"
|
SIMD_TEST_OPTIONS: "-s spec -b -S -P"
|
||||||
THREADS_TEST_OPTIONS: "-s spec -b -p -P"
|
THREADS_TEST_OPTIONS: "-s spec -b -p -P"
|
||||||
X86_32_TARGET_TEST_OPTIONS: "-m x86_32 -P"
|
X86_32_TARGET_TEST_OPTIONS: "-m x86_32 -P"
|
||||||
|
WASI_TEST_OPTIONS: "-s wasi_certification"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build_llvm_libraries:
|
build_llvm_libraries:
|
||||||
|
@ -376,7 +377,7 @@ jobs:
|
||||||
exit $?
|
exit $?
|
||||||
working-directory: ./samples/simple
|
working-directory: ./samples/simple
|
||||||
|
|
||||||
spec_test:
|
test:
|
||||||
needs: [build_iwasm, build_llvm_libraries, build_wamrc]
|
needs: [build_iwasm, build_llvm_libraries, build_wamrc]
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
strategy:
|
strategy:
|
||||||
|
@ -389,6 +390,7 @@ jobs:
|
||||||
$MULTI_MODULES_TEST_OPTIONS,
|
$MULTI_MODULES_TEST_OPTIONS,
|
||||||
$SIMD_TEST_OPTIONS,
|
$SIMD_TEST_OPTIONS,
|
||||||
$THREADS_TEST_OPTIONS,
|
$THREADS_TEST_OPTIONS,
|
||||||
|
$WASI_TEST_OPTIONS,
|
||||||
]
|
]
|
||||||
exclude:
|
exclude:
|
||||||
# uncompatiable modes and features
|
# uncompatiable modes and features
|
||||||
|
@ -400,6 +402,9 @@ jobs:
|
||||||
# aot and jit don't support multi module
|
# aot and jit don't support multi module
|
||||||
- running_mode: "aot"
|
- running_mode: "aot"
|
||||||
test_option: $MULTI_MODULES_TEST_OPTIONS
|
test_option: $MULTI_MODULES_TEST_OPTIONS
|
||||||
|
# aot is WAMR-specific while wasi-testsuite is generic
|
||||||
|
- running_mode: "aot"
|
||||||
|
test_option: $WASI_TEST_OPTIONS
|
||||||
- running_mode: "jit"
|
- running_mode: "jit"
|
||||||
test_option: $MULTI_MODULES_TEST_OPTIONS
|
test_option: $MULTI_MODULES_TEST_OPTIONS
|
||||||
# fast-jit is only tested on default mode, exclude other three
|
# fast-jit is only tested on default mode, exclude other three
|
||||||
|
@ -441,7 +446,7 @@ jobs:
|
||||||
if: env.USE_LLVM == 'true' && steps.cache_llvm.outputs.cache-hit != 'true'
|
if: env.USE_LLVM == 'true' && steps.cache_llvm.outputs.cache-hit != 'true'
|
||||||
run: echo "::error::can not get prebuilt llvm libraries" && exit 1
|
run: echo "::error::can not get prebuilt llvm libraries" && exit 1
|
||||||
|
|
||||||
- name: run spec tests default and extra
|
- name: run tests
|
||||||
run: ./test_wamr.sh ${{ matrix.test_option }} -t ${{ matrix.running_mode }}
|
run: ./test_wamr.sh ${{ matrix.test_option }} -t ${{ matrix.running_mode }}
|
||||||
working-directory: ./tests/wamr-test-suites
|
working-directory: ./tests/wamr-test-suites
|
||||||
|
|
||||||
|
@ -456,7 +461,7 @@ jobs:
|
||||||
sudo apt-get update &&
|
sudo apt-get update &&
|
||||||
sudo apt install -y g++-multilib lib32gcc-9-dev
|
sudo apt install -y g++-multilib lib32gcc-9-dev
|
||||||
|
|
||||||
- name: run spec tests x86_32
|
- name: run tests x86_32
|
||||||
if: env.TEST_ON_X86_32 == 'true'
|
if: env.TEST_ON_X86_32 == 'true'
|
||||||
run: ./test_wamr.sh ${{ env.X86_32_TARGET_TEST_OPTIONS }} ${{ matrix.test_option }} -t ${{ matrix.running_mode }}
|
run: ./test_wamr.sh ${{ env.X86_32_TARGET_TEST_OPTIONS }} ${{ matrix.test_option }} -t ${{ matrix.running_mode }}
|
||||||
working-directory: ./tests/wamr-test-suites
|
working-directory: ./tests/wamr-test-suites
|
||||||
|
|
|
@ -46,6 +46,7 @@ PLATFORM=$(uname -s | tr A-Z a-z)
|
||||||
PARALLELISM=0
|
PARALLELISM=0
|
||||||
ENABLE_QEMU=0
|
ENABLE_QEMU=0
|
||||||
QEMU_FIRMWARE=""
|
QEMU_FIRMWARE=""
|
||||||
|
WASI_TESTSUITE_COMMIT="1d913f28b3f0d92086d6f50405cf85768e648b54"
|
||||||
|
|
||||||
while getopts ":s:cabt:m:MCpSXxPQF:" opt
|
while getopts ":s:cabt:m:MCpSXxPQF:" opt
|
||||||
do
|
do
|
||||||
|
@ -447,7 +448,10 @@ function spec_test()
|
||||||
cd ${WORK_DIR}
|
cd ${WORK_DIR}
|
||||||
echo "python3 ./all.py ${ARGS_FOR_SPEC_TEST} | tee -a ${REPORT_DIR}/spec_test_report.txt"
|
echo "python3 ./all.py ${ARGS_FOR_SPEC_TEST} | tee -a ${REPORT_DIR}/spec_test_report.txt"
|
||||||
python3 ./all.py ${ARGS_FOR_SPEC_TEST} | tee -a ${REPORT_DIR}/spec_test_report.txt
|
python3 ./all.py ${ARGS_FOR_SPEC_TEST} | tee -a ${REPORT_DIR}/spec_test_report.txt
|
||||||
[[ ${PIPESTATUS[0]} -ne 0 ]] && exit 1
|
if [[ ${PIPESTATUS[0]} -ne 0 ]];then
|
||||||
|
echo -e "\nspec tests FAILED" | tee -a ${REPORT_DIR}/spec_test_report.txt
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
cd -
|
cd -
|
||||||
|
|
||||||
echo -e "\nFinish spec tests" | tee -a ${REPORT_DIR}/spec_test_report.txt
|
echo -e "\nFinish spec tests" | tee -a ${REPORT_DIR}/spec_test_report.txt
|
||||||
|
@ -469,6 +473,38 @@ function wasi_test()
|
||||||
echo "Finish wasi tests"
|
echo "Finish wasi tests"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function wasi_certification_test()
|
||||||
|
{
|
||||||
|
echo "Now start wasi tests"
|
||||||
|
|
||||||
|
cd ${WORK_DIR}
|
||||||
|
if [ ! -d "wasi-testsuite" ]; then
|
||||||
|
echo "wasi not exist, clone it from github"
|
||||||
|
git clone -b prod/testsuite-base \
|
||||||
|
--single-branch https://github.com/WebAssembly/wasi-testsuite.git
|
||||||
|
fi
|
||||||
|
cd wasi-testsuite
|
||||||
|
git reset --hard ${WASI_TESTSUITE_COMMIT}
|
||||||
|
|
||||||
|
python3 -m venv wasi-env && source wasi-env/bin/activate
|
||||||
|
python3 -m pip install -r test-runner/requirements.txt
|
||||||
|
IWASM_PATH=$(dirname ${IWASM_CMD})
|
||||||
|
PATH=${PATH}:${IWASM_PATH} python3 test-runner/wasi_test_runner.py \
|
||||||
|
-r adapters/wasm-micro-runtime.sh \
|
||||||
|
-t \
|
||||||
|
tests/c/testsuite/ \
|
||||||
|
tests/assemblyscript/testsuite/ \
|
||||||
|
| tee -a ${REPORT_DIR}/wasi_test_report.txt
|
||||||
|
exit_code=${PIPESTATUS[0]}
|
||||||
|
deactivate
|
||||||
|
|
||||||
|
if [[ ${exit_code} -ne 0 ]];then
|
||||||
|
echo -e "\nwasi tests FAILED" | tee -a ${REPORT_DIR}/wasi_test_report.txt
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo -e "\nFinish wasi tests" | tee -a ${REPORT_DIR}/wasi_test_report.txt
|
||||||
|
}
|
||||||
|
|
||||||
function polybench_test()
|
function polybench_test()
|
||||||
{
|
{
|
||||||
echo "Now start polybench tests"
|
echo "Now start polybench tests"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user