From 5f85d3b3a78040ec0920944cb4b5202faa02d0c4 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Fri, 26 Oct 2001 13:33:39 +0000 Subject: 2001-10-26 Alexandra Kossovsky * tools: New subdirectory. * tools/Makefile.am, tools/runtest: New files. --- c/src/lib/libbsp/sh/simsh4/ChangeLog | 5 + c/src/lib/libbsp/sh/simsh4/tools/Makefile.am | 21 +++ c/src/lib/libbsp/sh/simsh4/tools/runtest | 231 +++++++++++++++++++++++++++ 3 files changed, 257 insertions(+) create mode 100644 c/src/lib/libbsp/sh/simsh4/tools/Makefile.am create mode 100644 c/src/lib/libbsp/sh/simsh4/tools/runtest (limited to 'c/src/lib/libbsp/sh/simsh4') diff --git a/c/src/lib/libbsp/sh/simsh4/ChangeLog b/c/src/lib/libbsp/sh/simsh4/ChangeLog index 7e12f1e4f1..99277cc75a 100644 --- a/c/src/lib/libbsp/sh/simsh4/ChangeLog +++ b/c/src/lib/libbsp/sh/simsh4/ChangeLog @@ -1,3 +1,8 @@ +2001-10-26 Alexandra Kossovsky + + * tools: New subdirectory. + * tools/Makefile.am, tools/runtest: New files. + 2001-10-12 Ralf Corsepius * configure.ac: Added support for START_HW_INIT. diff --git a/c/src/lib/libbsp/sh/simsh4/tools/Makefile.am b/c/src/lib/libbsp/sh/simsh4/tools/Makefile.am new file mode 100644 index 0000000000..175db21655 --- /dev/null +++ b/c/src/lib/libbsp/sh/simsh4/tools/Makefile.am @@ -0,0 +1,21 @@ +## +## $Id$ +## + +AUTOMAKE_OPTIONS = foreign 1.4 +ACLOCAL_AMFLAGS = -I $(RTEMS_TOPdir)/aclocal + +noinst_SCRIPTS = runtest + +TMPINSTALL_FILES += $(PROJECT_ROOT)/simsh4/tests \ + $(PROJECT_ROOT)/simsh4/tests/runtest + +$(PROJECT_ROOT)/simsh4/tests: + $(mkinstalldirs) $@ + +$(PROJECT_ROOT)/simsh4/tests/runtest: runtest + $(INSTALL_SCRIPT) $< $@ + +all-local: $(TMPINSTALL_FILES) + +include $(top_srcdir)/../../../../../../automake/host.am diff --git a/c/src/lib/libbsp/sh/simsh4/tools/runtest b/c/src/lib/libbsp/sh/simsh4/tools/runtest new file mode 100644 index 0000000000..8b4002efc9 --- /dev/null +++ b/c/src/lib/libbsp/sh/simsh4/tools/runtest @@ -0,0 +1,231 @@ +#! /bin/sh -p +# +# Run rtems tests on the Motorola MCF5206eLITE Coldfire Evaluation board +# using gdb configured with P&E Micro Background Debug Mode debugging +# interface. +# +# This program generates a gdb script to run each test, intercept +# serial port output and put log into output file. +# +# Author: Victor V. Vengerov +# Copyright (C) 2000 OKTET Ltd., St.-Petersburg, Russia +# +# Partially based on runtest script for powerpc psim. +# +# COPYRIGHT (c) 1989-1999. +# On-Line Applications Research Corporation (OAR). +# +# The license and distribution terms for this file may be +# found in found in the file LICENSE in this distribution or at +# http://www.OARcorp.com/rtems/license.html. +# +# @(#) $Id$ +# + +# progname=`basename $0` +progname=${0##*/} # fast basename hack for ksh, bash + +USAGE=\ +"usage: $progname [ -opts ] test [ test ... ] + -r runname -- specify name of run program to be used + -v -- verbose output + -d -- don't remove temporary files (for debugging only) + -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 $* +} + +# run at normal and signalled exit +test_exit() +{ + exit_code=$1 + + rm -f ${logfile}.tmp* + [ "$run_pid" ] && kill -9 $run_pid + + exit $exit_code +} + +# +# process the options +# +# defaults for getopt vars +# +# max_run_time is defaulted to 5 minutes +# + +verbose="" +runprog=sh-rtemself-run +logdir=log +max_run_time=$((10 * 60)) +#sizeof_ram=$((1 * 1024 * 1024)) +debugging="no" +#console_mode=0 + +while getopts vdips:r:b:l: OPT +do + case "$OPT" in + v) + verbose="yes";; + d) + debugging="yes";; + l) + logdir="$OPTARG";; + r) + runprog="$OPTARG";; +# p) +# console_mode=1;; +# i) +# console_mode=2;; + *) + 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)" + +# where the tmp files go +trap "test_exit" 1 2 3 13 14 15 + +for tfile in $tests +do + + tname=`basename $tfile .exe` + cpus="1" + TEST_TYPE="single" + + case "$tname" in + # size is no longer interactive. + monitor* | termios*) + warn "Skipping $tname; it is interactive" + continue + ;; + *-node2*) + warn "Skipping $tname; 'runtest' runs both nodes when for *-node1" + continue + ;; + *-node1*) + warn "Running both nodes associated with $tname" + tname=`echo $tname | sed 's/-node.*//'` + TEST_TYPE="mp" + ;; + minimum*|spfatal*) + continue + ;; + esac + + if [ "$TEST_TYPE" = "mp" ] ; then + fatal "MP tests not supported for this board" + fi + + if [ $TEST_TYPE = "single" ] ; then + logfile=$logdir/${tname} + infofile=${logfile}.info +# scriptfile=${logfile}.ss +# runlogfile=${logfile}.run + + rm -f ${logfile}.tmp* + + date=`date` + echo "Starting $tname at $date" + + ${runprog} "${tfile}" > "${logfile}" 2>&1 & + run_pid=$! + { + time_run=0 + while [ $time_run -lt $max_run_time ] ; do + sleep 10s + if kill -0 $run_pid 2> /dev/null ; then + time_run=$((time_run+10)) ; + else + exit 0 + fi + done + kill -2 $run_pid 2> /dev/null + { + sleep 5s ; + if kill -0 $run_pid 2> /dev/null ; then + kill -9 $run_pid 2> /dev/null ; + fi + } & + } & + wait $run_pid + run_status=$? + if [ $run_status -ge 128 ] ; then + ran_too_long="yes" ; + else + ran_too_long="no" + fi + if [ $run_status -ne 0 ] ; then + test_failed="yes" ; + else + test_failed="no" + fi + run_pid="" + fi + + # Create the info files + { + echo "$date" + echo "Test run on: `uname -n`" + echo "Host Information:" + echo `uname -a` + echo + echo "run: `type -path ${runprog}`" + + cat ${logfile} + + if [ "$test_failed" = "yes" ] ; then + echo -e "\\n\\nTest did not finish normally" + if [ "$ran_too_long" = "yes" ] ; then + echo "Test killed after $max_run_time seconds" + fi + fi + + echo + date; + } > ${infofile} +# if [ "${debugging}" = "no" ] ; then +# rm -f ${runlogfile} +# fi +done + +echo "Tests completed at " `date` +test_exit 0 -- cgit v1.2.3