mirror of
https://github.com/bytecodealliance/wasm-micro-runtime.git
synced 2025-02-06 23:15:16 +00:00
![Maks Litskevich](/assets/img/avatar_default.png)
As a part of stress-testing we want to ensure that mutex implementation is working correctly and protecting shared resource to be allocated from other threads when mutex is locked. This test covers the most common situations that happen when some program uses mutexes like locks from various threads, locks from the same thread etc.
75 lines
1.8 KiB
Bash
Executable File
75 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#
|
|
# Copyright (C) 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
#
|
|
|
|
set -eo pipefail
|
|
CC=${CC:=/opt/wasi-sdk/bin/clang}
|
|
WAMR_DIR=../../../../..
|
|
|
|
show_usage() {
|
|
echo "Usage: $0 [--sysroot PATH_TO_SYSROOT]"
|
|
echo "--sysroot PATH_TO_SYSROOT specify to build with custom sysroot for wasi-libc"
|
|
}
|
|
|
|
while [[ $# -gt 0 ]]; do
|
|
key="$1"
|
|
case $key in
|
|
--sysroot)
|
|
sysroot_path="$2"
|
|
shift
|
|
shift
|
|
;;
|
|
--help)
|
|
show_usage
|
|
exit
|
|
;;
|
|
*)
|
|
echo "Unknown option: $1"
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
|
|
# Stress tests names
|
|
thread_start_file_exclusions=("linear_memory_size_update.wasm")
|
|
|
|
rm -rf *.wasm
|
|
rm -rf *.aot
|
|
|
|
for test_c in *.c; do
|
|
test_wasm="$(basename $test_c .c).wasm"
|
|
|
|
if [[ " ${thread_start_file_exclusions[@]} " =~ " ${test_wasm} " ]] ; then
|
|
thread_start_file=""
|
|
else
|
|
thread_start_file=$WAMR_DIR/samples/wasi-threads/wasm-apps/wasi_thread_start.S
|
|
fi
|
|
|
|
if [[ -n "$sysroot_path" ]]; then
|
|
if [ ! -d "$sysroot_path" ]; then
|
|
echo "Directory $sysroot_path doesn't exist. Aborting"
|
|
exit 1
|
|
fi
|
|
sysroot_command="--sysroot $sysroot_path"
|
|
fi
|
|
|
|
echo "Compiling $test_c to $test_wasm"
|
|
$CC \
|
|
-target wasm32-wasi-threads \
|
|
-O2 \
|
|
-pthread -ftls-model=local-exec \
|
|
-z stack-size=32768 \
|
|
-Wl,--export=__heap_base \
|
|
-Wl,--export=__data_end \
|
|
-Wl,--shared-memory,--max-memory=1966080 \
|
|
-Wl,--export=wasi_thread_start \
|
|
-Wl,--export=malloc \
|
|
-Wl,--export=free \
|
|
-I $WAMR_DIR/samples/wasi-threads/wasm-apps \
|
|
$sysroot_command \
|
|
$thread_start_file \
|
|
$test_c -o $test_wasm
|
|
done |