1875abb87SDavid van Moolenbroek#!/bin/sh 2875abb87SDavid van Moolenbroek 3875abb87SDavid van MoolenbroekLABEL=es1371 4875abb87SDavid van MoolenbroekEXEDIR=/service/es1371 5875abb87SDavid van Moolenbroek#LABEL=fxp 6875abb87SDavid van Moolenbroek#EXEDIR=/usr/build/drivers/fxp 7875abb87SDavid van MoolenbroekEXE=$EXEDIR/$LABEL 8875abb87SDavid van MoolenbroekDEV="-dev /dev/audio" 9875abb87SDavid van Moolenbroek 10875abb87SDavid van Moolenbroek:>log 11875abb87SDavid van Moolenbroek 12875abb87SDavid van Moolenbroekdo_one() 13875abb87SDavid van Moolenbroek{ 14875abb87SDavid van Moolenbroek # $1 = test-nr, $2 = count, $3 = seed 15875abb87SDavid van Moolenbroek pid='' 16875abb87SDavid van Moolenbroek while [ X"$pid" = X ] 17875abb87SDavid van Moolenbroek do 18875abb87SDavid van Moolenbroek ps ax | grep $LABEL | grep -v grep 19875abb87SDavid van Moolenbroek pid=`ps ax | grep $LABEL | grep -v grep | 20875abb87SDavid van Moolenbroek sort -n | tail -1 | 21875abb87SDavid van Moolenbroek sed 's,^[ ]*,,;s,[ ].*,,'` 22875abb87SDavid van Moolenbroek if [ X"$pid" != X ] 23875abb87SDavid van Moolenbroek then 24875abb87SDavid van Moolenbroek break 25875abb87SDavid van Moolenbroek fi 26875abb87SDavid van Moolenbroek sleep 10 27875abb87SDavid van Moolenbroek done 28875abb87SDavid van Moolenbroek echo pid = $pid 29875abb87SDavid van Moolenbroek swifi -f $EXE $pid $1 $2 $3 >/tmp/out 30875abb87SDavid van Moolenbroek sleep 1 31875abb87SDavid van Moolenbroek kill -0 $pid && 32875abb87SDavid van Moolenbroek echo "driver failed to die, params: test $1, count $2, seed $3" 33875abb87SDavid van Moolenbroek} 34875abb87SDavid van Moolenbroek 35875abb87SDavid van Moolenbroekone_round() 36875abb87SDavid van Moolenbroek{ 37875abb87SDavid van Moolenbroek # $1 = count, $2 = seed 38875abb87SDavid van Moolenbroek count=$1 39875abb87SDavid van Moolenbroek seed=$2 40875abb87SDavid van Moolenbroek echo "Seed: $seed" >> log 41875abb87SDavid van Moolenbroek sync 42875abb87SDavid van Moolenbroek do_one 6 $count $seed # Source fault 43875abb87SDavid van Moolenbroek do_one 5 $count $seed # Destination fault 44875abb87SDavid van Moolenbroek do_one 8 $count $seed # Pointer fault 45875abb87SDavid van Moolenbroek do_one 14 $count $seed # Interface fault 46875abb87SDavid van Moolenbroek do_one 12 $count $seed # Loop fault 47875abb87SDavid van Moolenbroek do_one 0 $count $seed # Text fault 48875abb87SDavid van Moolenbroek do_one 4 $count $seed # Nop fault 49875abb87SDavid van Moolenbroek} 50875abb87SDavid van Moolenbroek 51875abb87SDavid van Moolenbroekusage() 52875abb87SDavid van Moolenbroek{ 53875abb87SDavid van Moolenbroek echo "Usage: run_t1 <count> <type> <seed>" >&2 54875abb87SDavid van Moolenbroek echo \ 55875abb87SDavid van Moolenbroek"Valid types are: source destination pointer interface loop text nop random" >&2 56875abb87SDavid van Moolenbroek exit 1 57875abb87SDavid van Moolenbroek} 58875abb87SDavid van Moolenbroek 59875abb87SDavid van Moolenbroekselect_from() 60875abb87SDavid van Moolenbroek{ 61875abb87SDavid van Moolenbroek # $1 = index, $2... = choices 62875abb87SDavid van Moolenbroek index="$1" 63875abb87SDavid van Moolenbroek index=`expr "$index" + 1` 64875abb87SDavid van Moolenbroek shift 65875abb87SDavid van Moolenbroek v=`eval echo '$'$index` 66875abb87SDavid van Moolenbroek echo "$v" 67875abb87SDavid van Moolenbroek} 68875abb87SDavid van Moolenbroek 69875abb87SDavid van Moolenbroekrandom_type() 70875abb87SDavid van Moolenbroek{ 71875abb87SDavid van Moolenbroek # $1 = seed 72875abb87SDavid van Moolenbroek seed="$1" 73875abb87SDavid van Moolenbroek r=`./rnd -m 7 -s "$seed"` 74875abb87SDavid van Moolenbroek select_from "$r" 6 5 8 14 12 0 4 75875abb87SDavid van Moolenbroek} 76875abb87SDavid van Moolenbroek 77875abb87SDavid van Moolenbroekif [ $# -ne 3 ]; then usage; fi 78875abb87SDavid van Moolenbroekcount="$1" 79875abb87SDavid van Moolenbroektype="$2" 80875abb87SDavid van Moolenbroekseed="$3" 81875abb87SDavid van Moolenbroek 82875abb87SDavid van Moolenbroekcase "$type" in 83875abb87SDavid van Moolenbroeksource) type_arg=6 84875abb87SDavid van Moolenbroek;; 85875abb87SDavid van Moolenbroekdestination) type_arg=5 86875abb87SDavid van Moolenbroek;; 87875abb87SDavid van Moolenbroekpointer) type_arg=8 88875abb87SDavid van Moolenbroek;; 89875abb87SDavid van Moolenbroekinterface) type_arg=14 90875abb87SDavid van Moolenbroek;; 91875abb87SDavid van Moolenbroekloop) type_arg=12 92875abb87SDavid van Moolenbroek;; 93875abb87SDavid van Moolenbroektext) type_arg=0 94875abb87SDavid van Moolenbroek;; 95875abb87SDavid van Moolenbroeknop) type_arg=4 96875abb87SDavid van Moolenbroek;; 97875abb87SDavid van Moolenbroekrandom) 98875abb87SDavid van Moolenbroek;; 99875abb87SDavid van Moolenbroek*) 100875abb87SDavid van Moolenbroek usage 101875abb87SDavid van Moolenbroekesac 102875abb87SDavid van Moolenbroek 103875abb87SDavid van Moolenbroek# Start our own driver. 104*c58da9fbSDavid van Moolenbroekminix-service down $LABEL 105875abb87SDavid van Moolenbroeksleep 2 # Allow driver to die 106*c58da9fbSDavid van Moolenbroekminix-service up $EXE -script `pwd`/rs.restart_imm -period 3HZ $DEV 107875abb87SDavid van Moolenbroek 108875abb87SDavid van Moolenbroeki=0 109875abb87SDavid van Moolenbroekwhile [ $i -lt "$count" ] 110875abb87SDavid van Moolenbroekdo 111875abb87SDavid van Moolenbroek echo "Seed: $seed" 112875abb87SDavid van Moolenbroek if [ "$type" = "random" ] 113875abb87SDavid van Moolenbroek then 114875abb87SDavid van Moolenbroek type_arg=`random_type $seed` 115875abb87SDavid van Moolenbroek fi 116875abb87SDavid van Moolenbroek do_one "$type_arg" 100 $seed 117875abb87SDavid van Moolenbroek i=`expr $i + 1` 118875abb87SDavid van Moolenbroek seed=`expr $seed + 1` 119875abb87SDavid van Moolenbroekdone 120875abb87SDavid van Moolenbroek 121875abb87SDavid van Moolenbroek# Restart the driver 122*c58da9fbSDavid van Moolenbroekminix-service refresh $LABEL 123