mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-09-22 08:54:44 +08:00
2001-10-26 Alexandra Kossovsky <sasha@oktet.ru>
* tools: New subdirectory. * tools/Makefile.am, tools/runtest: New files.
This commit is contained in:
@@ -1,3 +1,8 @@
|
||||
2001-10-26 Alexandra Kossovsky <sasha@oktet.ru>
|
||||
|
||||
* tools: New subdirectory.
|
||||
* tools/Makefile.am, tools/runtest: New files.
|
||||
|
||||
2001-10-12 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
|
||||
|
||||
* configure.ac: Added support for START_HW_INIT.
|
||||
|
||||
@@ -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
|
||||
@@ -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 <vvv@oktet.ru>
|
||||
# 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
|
||||
Reference in New Issue
Block a user