xref: /minix3/minix/commands/swifi/tests/run_t1 (revision c58da9fbc35f86051ff0a75e6dd91e937d83cfff)
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