#!/bin/sh LABEL=e1000_0 NAME=e1000 EXEDIR=/service EXE=$EXEDIR/$NAME :>log start_driver() { service up $EXE -label $LABEL -script /etc/rs.single -period 3HZ } do_one() { # $1 = test-nr, $2 = count, $3 = seed pid='' while [ X"$pid" = X ] do pid=`ps ax | grep $NAME | grep -v grep | sed 's,^[ ]*,,;s,[ ].*,,'` if [ X"$pid" != X ] then break fi sleep 10 done echo pid = $pid swifi -f $EXE $pid $1 $2 $3 >/tmp/out sleep 1 kill -0 $pid && echo "driver survived, params: test $1, count $2, seed $3" || start_driver } one_round() { # $1 = count, $2 = seed count=$1 seed=$2 echo "Seed: $seed" >> log sync do_one 6 $count $seed # Source fault do_one 5 $count $seed # Destination fault do_one 8 $count $seed # Pointer fault do_one 14 $count $seed # Interface fault do_one 12 $count $seed # Loop fault do_one 0 $count $seed # Text fault do_one 4 $count $seed # Nop fault } # Start our own driver. service down $LABEL sleep 10 # Allow driver to die start_driver i=0 i=4000 while [ $i -lt 10000 ] do echo "Seed: $i" one_round 100 $i i=`expr $i + 1` done