diff options
author | Ralf Corsepius <ralf.corsepius@rtems.org> | 2009-10-14 12:17:42 +0000 |
---|---|---|
committer | Ralf Corsepius <ralf.corsepius@rtems.org> | 2009-10-14 12:17:42 +0000 |
commit | 87a04019fb626d90af690e6a9e985951ed9f4673 (patch) | |
tree | 8ce47ee7f81a5d126c59c3dc3204120a059a5f9b /c/src/lib/libbsp/unix/posix/tools/runtest.in | |
parent | 2009-10-14 Ralf Corsépius <ralf.corsepius@rtems.org> (diff) | |
download | rtems-87a04019fb626d90af690e6a9e985951ed9f4673.tar.bz2 |
Remove (Abandoned).
Diffstat (limited to 'c/src/lib/libbsp/unix/posix/tools/runtest.in')
-rw-r--r-- | c/src/lib/libbsp/unix/posix/tools/runtest.in | 255 |
1 files changed, 0 insertions, 255 deletions
diff --git a/c/src/lib/libbsp/unix/posix/tools/runtest.in b/c/src/lib/libbsp/unix/posix/tools/runtest.in deleted file mode 100644 index 7a5eefa627..0000000000 --- a/c/src/lib/libbsp/unix/posix/tools/runtest.in +++ /dev/null @@ -1,255 +0,0 @@ -#!@KSH@ -p -# -# Run rtems tests on a POSIX-ish UNIX -# -# $Id$ -# - -trap "test_exit 1" 1 2 3 13 14 15 - -trap "test_exit 1" 1 2 3 13 14 15 - -# progname=`basename $0` -progname=${0##*/} # fast basename hack for ksh, bash - -USAGE=\ -"usage: $progname [ -opts ] test [ test ... ] - -c clicks -- specify (hex) value for clicks / tick - -v -- verbose - -l logdir -- specify log directory (default is 'logdir') - - Specify test as 'test' or 'test.exe'. - All multiprocessing tests *must* be specified simply as 'mp01', etc. -" - -# export everything -set -a - -# log an error to stderr -prerr() -{ - echo "$*" >&2 -} - -fatal() { - [ "$1" ] && prerr $* - prerr "$USAGE" - exit 1 -} - -warn() { - [ "$1" ] && prerr $* -} - -# print args, 1 per line -ml_echo() -{ - for l - do - echo "$l" - done -} - -killem() -{ - kill -9 $pid $pid1 $pid2 2> /dev/null -} - - -killem() -{ - kill -9 $pid $pid1 $pid2 2> /dev/null -} - - -test_exit() -{ - exit_code=$1 - - killem - - killem - - rm -f ${logfile}.tmp* - - exit $exit_code -} - -# -# process the options -# -# defaults for getopt vars -# - -verbose="" -extra_options="" -clicks_per_tick="" -logdir=log -# how long can we run; rtems tests might run 300 seconds -max_run_time=400 -run_to_completion="yes" - -while getopts vo:c:l: OPT -do - case "$OPT" in - v) - verbose="yes";; - l) - logdir="$OPTARG";; - o) - extra_options="$OPTARG";; - c) - clicks_per_tick="$OPTARG";; - *) - fatal;; - esac -done - -let $((shiftcount = $OPTIND - 1)) -shift $shiftcount - -args=$* - -# -# Run the tests -# - -tests="$args" -if [ ! "$tests" ] -then - set -- `echo *.exe` - tests="$*" -fi - -[ -d $logdir ] || mkdir $logdir || fatal "could not create log directory ($logdir)" - -for tfile in $tests -do - - tname=`echo $tfile | sed -e 's/\.exe$//'` - tname=`basename $tname` - - TEST_TYPE="single" - - case $tname in - capture* | monitor* | termios* | fileio* | pppd*) - if [ $run_to_completion = "yes" ] - then - warn "Skipping $tname; it is interactive" - continue - fi - ;; - *-node2*) - warn "Skipping $tname; 'runtest' runs both nodes when for *-node1" - continue;; - *-node1*) - tname=`echo $tname | sed 's/-node.*//'` - warn "Running both nodes associated with $tname" - TEST_TYPE="mp" - ;; - stackchk*|*fatal*|malloctest*|termio*) - warn "Skipping $tname; it locks up or takes a VERY long time to run" - continue - ;; - esac - - if [ $TEST_TYPE = "mp" ] - then - logfile1=$logdir/${tname}_1 - infofile1=$logfile1.info - logfile2=$logdir/${tname}_2 - infofile2=$logfile2.info - - rm -f ${logfile1} - rm -f ${logfile2} - - date=`date` - echo "Starting $tname at $date" - - ./${tname}-node1.exe > $logfile1 2>&1 & - pid1=$! - ./${tname}-node2.exe > $logfile2 2>&1 & - pid2=$! - - # Wait for both cpu's to complete, ensuring they don't run forever... - time_run=0 - while [ $time_run -lt $max_run_time ] - do - # sleep 5s at a time waiting for jobs to finish or timer to expire - # if job has exited, then we exit, too. - sleep 5 - kill -0 $pid1 2> /dev/null - running1=$? - kill -0 $pid2 2> /dev/null - running2=$? - if [ $running1 -eq 0 ] && [ $running2 -eq 0 ] # both still running - then - time_run=$((time_run + 5)) - if [ $time_run -ge $max_run_time ] - then - echo "$tname ran too long; killing it" - ran_too_long="yes" - fi - else - ran_too_long="no" - # if one is still running, have to kill them - if [ $running1 -ne $running2 ] - then - sleep 10 # give other node a chance to gracefully die - fi - break - fi - done - - # make sure they are gone - kill -9 $pid1 2> /dev/null - kill -9 $pid2 2> /dev/null - fi - - if [ $TEST_TYPE = "single" ] - then - logfile=$logdir/$tname - infofile=$logfile.info - - rm -f ${logfile} - - date=`date` - echo "Starting $tname.exe at $date" - - ./$tname.exe > $logfile 2>&1 & - pid=$! - - # Make sure it won't run forever... - time_run=0 - while [ $time_run -lt $max_run_time ] - do - # sleep 5s at a time waiting for job to finish or timer to expire - # if job has exited, then we exit, too. - sleep 5 - kill -0 $pid 2> /dev/null - running=$? - if [ $running -eq 0 ] - then - time_run=$((time_run + 5)) - if [ $time_run -ge $max_run_time ] - then - kill -9 $pid 2> /dev/null - ran_too_long="yes" - fi - else - ran_too_long="no" - break - fi - done - fi - - pid="" - -done - -test_exit 0 - -# Local Variables: *** -# mode:ksh *** -# End: *** - |