mirror of
				https://github.com/bytecodealliance/wasm-micro-runtime.git
				synced 2025-10-27 03:11:18 +00:00 
			
		
		
		
	 411b903cee
			
		
	
	
		411b903cee
		
			
		
	
	
	
	
		
			
			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 |