1103832e8SRadim Krčmář: "${RUNTIME_arch_run?}" 2103832e8SRadim Krčmář 36a53fc26SRadim Krčmářqemu=${QEMU:-qemu-system-$ARCH} 46a53fc26SRadim Krčmářverbose=0 56a53fc26SRadim Krčmář 66a53fc26SRadim Krčmářfunction run() 76a53fc26SRadim Krčmář{ 86a53fc26SRadim Krčmář local testname="$1" 96a53fc26SRadim Krčmář local groups="$2" 106a53fc26SRadim Krčmář local smp="$3" 116a53fc26SRadim Krčmář local kernel="$4" 126a53fc26SRadim Krčmář local opts="$5" 136a53fc26SRadim Krčmář local arch="$6" 146a53fc26SRadim Krčmář local check="$7" 156a53fc26SRadim Krčmář local accel="$8" 166a53fc26SRadim Krčmář 176a53fc26SRadim Krčmář if [ -z "$testname" ]; then 186a53fc26SRadim Krčmář return 196a53fc26SRadim Krčmář fi 206a53fc26SRadim Krčmář 216a53fc26SRadim Krčmář if [ -n "$only_group" ] && ! grep -q "$only_group" <<<$groups; then 226a53fc26SRadim Krčmář return 236a53fc26SRadim Krčmář fi 246a53fc26SRadim Krčmář 256a53fc26SRadim Krčmář if [ -n "$arch" ] && [ "$arch" != "$ARCH" ]; then 266a53fc26SRadim Krčmář echo "skip $1 ($arch only)" 276a53fc26SRadim Krčmář return 286a53fc26SRadim Krčmář fi 296a53fc26SRadim Krčmář 306a53fc26SRadim Krčmář # check a file for a particular value before running a test 316a53fc26SRadim Krčmář # the check line can contain multiple files to check separated by a space 326a53fc26SRadim Krčmář # but each check parameter needs to be of the form <path>=<value> 336a53fc26SRadim Krčmář for check_param in ${check[@]}; do 346a53fc26SRadim Krčmář path=${check_param%%=*} 356a53fc26SRadim Krčmář value=${check_param#*=} 366a53fc26SRadim Krčmář if [ "$path" ] && [ "$(cat $path)" != "$value" ]; then 376a53fc26SRadim Krčmář echo "skip $1 ($path not equal to $value)" 386a53fc26SRadim Krčmář return 396a53fc26SRadim Krčmář fi 406a53fc26SRadim Krčmář done 416a53fc26SRadim Krčmář 42103832e8SRadim Krčmář cmdline="TESTNAME=$testname ACCEL=$accel $RUNTIME_arch_run $kernel -smp $smp $opts" 436a53fc26SRadim Krčmář if [ $verbose != 0 ]; then 446a53fc26SRadim Krčmář echo $cmdline 456a53fc26SRadim Krčmář fi 466a53fc26SRadim Krčmář 476a53fc26SRadim Krčmář # extra_params in the config file may contain backticks that need to be 486a53fc26SRadim Krčmář # expanded, so use eval to start qemu 49103832e8SRadim Krčmář eval $cmdline 50*5af378ddSRadim Krčmář ret=$? 516a53fc26SRadim Krčmář 52*5af378ddSRadim Krčmář if [ $ret -le 1 ]; then 536a53fc26SRadim Krčmář echo -e "\e[32mPASS\e[0m $1" 546a53fc26SRadim Krčmář else 556a53fc26SRadim Krčmář echo -e "\e[31mFAIL\e[0m $1" 566a53fc26SRadim Krčmář fi 57*5af378ddSRadim Krčmář 58*5af378ddSRadim Krčmář return $ret 596a53fc26SRadim Krčmář} 606a53fc26SRadim Krčmář 616a53fc26SRadim Krčmářfunction usage() 626a53fc26SRadim Krčmář{ 636a53fc26SRadim Krčmářcat <<EOF 646a53fc26SRadim Krčmář 656a53fc26SRadim KrčmářUsage: $0 [-g group] [-h] [-v] 666a53fc26SRadim Krčmář 676a53fc26SRadim Krčmář -g: Only execute tests in the given group 686a53fc26SRadim Krčmář -h: Output this help text 696a53fc26SRadim Krčmář -v: Enables verbose mode 706a53fc26SRadim Krčmář 716a53fc26SRadim KrčmářSet the environment variable QEMU=/path/to/qemu-system-ARCH to 726a53fc26SRadim Krčmářspecify the appropriate qemu binary for ARCH-run. 736a53fc26SRadim Krčmář 746a53fc26SRadim KrčmářEOF 756a53fc26SRadim Krčmář} 766a53fc26SRadim Krčmář 776a53fc26SRadim Krčmářecho > test.log 786a53fc26SRadim Krčmářwhile getopts "g:hv" opt; do 796a53fc26SRadim Krčmář case $opt in 806a53fc26SRadim Krčmář g) 816a53fc26SRadim Krčmář only_group=$OPTARG 826a53fc26SRadim Krčmář ;; 836a53fc26SRadim Krčmář h) 846a53fc26SRadim Krčmář usage 856a53fc26SRadim Krčmář exit 866a53fc26SRadim Krčmář ;; 876a53fc26SRadim Krčmář v) 886a53fc26SRadim Krčmář verbose=1 896a53fc26SRadim Krčmář ;; 906a53fc26SRadim Krčmář *) 916a53fc26SRadim Krčmář exit 926a53fc26SRadim Krčmář ;; 936a53fc26SRadim Krčmář esac 946a53fc26SRadim Krčmářdone 956a53fc26SRadim Krčmář 966a53fc26SRadim Krčmář# 976a53fc26SRadim Krčmář# Probe for MAX_SMP 986a53fc26SRadim Krčmář# 996a53fc26SRadim KrčmářMAX_SMP=$(getconf _NPROCESSORS_CONF) 1006a53fc26SRadim Krčmářwhile ./$TEST_DIR-run _NO_FILE_4Uhere_ -smp $MAX_SMP \ 1016a53fc26SRadim Krčmář |& grep -q 'exceeds max cpus'; do 1026a53fc26SRadim Krčmář ((--MAX_SMP)) 1036a53fc26SRadim Krčmářdone 104