1#!/bin/bash 2# SPDX-License-Identifier: GPL-2.0+ or MIT 3 4EXTRA_ARGS=${@} 5 6OLDIFS="$IFS" 7IFS=$'\n' 8TEST_LIST=( 9 "-T s" 10 "-T l" 11 "-T b" 12 "-T b -M" 13 "-T m" 14 "-T m -M" 15 "-T i" 16) 17 18TEST_NAME=( 19 "spinlock" 20 "list" 21 "buffer" 22 "buffer with barrier" 23 "memcpy" 24 "memcpy with barrier" 25 "increment" 26) 27IFS="$OLDIFS" 28 29REPS=1000 30SLOW_REPS=100 31 32function do_tests() 33{ 34 local i=0 35 while [ "$i" -lt "${#TEST_LIST[@]}" ]; do 36 echo "Running test ${TEST_NAME[$i]}" 37 ./param_test ${TEST_LIST[$i]} -r ${REPS} ${@} ${EXTRA_ARGS} || exit 1 38 echo "Running compare-twice test ${TEST_NAME[$i]}" 39 ./param_test_compare_twice ${TEST_LIST[$i]} -r ${REPS} ${@} ${EXTRA_ARGS} || exit 1 40 let "i++" 41 done 42} 43 44echo "Default parameters" 45do_tests 46 47echo "Loop injection: 10000 loops" 48 49OLDIFS="$IFS" 50IFS=$'\n' 51INJECT_LIST=( 52 "1" 53 "2" 54 "3" 55 "4" 56 "5" 57 "6" 58 "7" 59 "8" 60 "9" 61) 62IFS="$OLDIFS" 63 64NR_LOOPS=10000 65 66i=0 67while [ "$i" -lt "${#INJECT_LIST[@]}" ]; do 68 echo "Injecting at <${INJECT_LIST[$i]}>" 69 do_tests -${INJECT_LIST[i]} ${NR_LOOPS} 70 let "i++" 71done 72NR_LOOPS= 73 74function inject_blocking() 75{ 76 OLDIFS="$IFS" 77 IFS=$'\n' 78 INJECT_LIST=( 79 "7" 80 "8" 81 "9" 82 ) 83 IFS="$OLDIFS" 84 85 NR_LOOPS=-1 86 87 i=0 88 while [ "$i" -lt "${#INJECT_LIST[@]}" ]; do 89 echo "Injecting at <${INJECT_LIST[$i]}>" 90 do_tests -${INJECT_LIST[i]} -1 ${@} 91 let "i++" 92 done 93 NR_LOOPS= 94} 95 96echo "Yield injection (25%)" 97inject_blocking -m 4 -y 98 99echo "Yield injection (50%)" 100inject_blocking -m 2 -y 101 102echo "Yield injection (100%)" 103inject_blocking -m 1 -y 104 105echo "Kill injection (25%)" 106inject_blocking -m 4 -k 107 108echo "Kill injection (50%)" 109inject_blocking -m 2 -k 110 111echo "Kill injection (100%)" 112inject_blocking -m 1 -k 113 114echo "Sleep injection (1ms, 25%)" 115inject_blocking -m 4 -s 1 116 117echo "Sleep injection (1ms, 50%)" 118inject_blocking -m 2 -s 1 119 120echo "Sleep injection (1ms, 100%)" 121inject_blocking -m 1 -s 1 122