summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2008-08-12 13:05:08 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2008-08-12 13:05:08 +0000
commit3c5939074cb50dd952ccf3133492f24635a45abc (patch)
tree48253323a88bbf622be56139121d54e1c512a441
parent2008-08-11 Joel Sherrill <joel.sherrill@OARcorp.com> (diff)
downloadrtems-3c5939074cb50dd952ccf3133492f24635a45abc.tar.bz2
2008-08-11 Joel Sherrill <joel.sherrill@OARcorp.com>
* runtest: Major update. Now more likely not to run away.
-rw-r--r--c/src/lib/libbsp/mips/jmr3904/tools/ChangeLog4
-rwxr-xr-xc/src/lib/libbsp/mips/jmr3904/tools/runtest70
2 files changed, 46 insertions, 28 deletions
diff --git a/c/src/lib/libbsp/mips/jmr3904/tools/ChangeLog b/c/src/lib/libbsp/mips/jmr3904/tools/ChangeLog
index 0f4cd701a0..31f331e0eb 100644
--- a/c/src/lib/libbsp/mips/jmr3904/tools/ChangeLog
+++ b/c/src/lib/libbsp/mips/jmr3904/tools/ChangeLog
@@ -1,3 +1,7 @@
+2008-08-11 Joel Sherrill <joel.sherrill@OARcorp.com>
+
+ * runtest: Major update. Now more likely not to run away.
+
2007-09-04 Joel Sherrill <joel.sherrill@OARcorp.com>
* runtest: Add capture to list of interative tests to skip in batch
diff --git a/c/src/lib/libbsp/mips/jmr3904/tools/runtest b/c/src/lib/libbsp/mips/jmr3904/tools/runtest
index 9b5055e756..62d693921c 100755
--- a/c/src/lib/libbsp/mips/jmr3904/tools/runtest
+++ b/c/src/lib/libbsp/mips/jmr3904/tools/runtest
@@ -85,7 +85,7 @@ logdir=log
update_on_tick="no"
max_run_time=$((5 * 60))
using_print_buffer="yes"
-simulator=mipstx39-rtems4.8-run
+simulator=mipstx39-rtems4.9-run
while getopts vdl:o:s: OPT
do
@@ -142,6 +142,7 @@ for tfile in $tests
do
tname=`basename $tfile .exe`
+ tname=`basename $tname .ralf`
cpus="1"
TEST_TYPE="single"
@@ -163,7 +164,7 @@ do
tname=`echo $tname | sed 's/-node.*//'`
TEST_TYPE="mp"
;;
- minimum*|stackchk*|spfatal*|termio*)
+ minimum*|stackchk*|*fatal*|termio*)
continue
;;
esac
@@ -214,32 +215,45 @@ do
# Spin off the simulator in the background
- ${simulator} --board=jmr3904 $tfile | \
- sed -e 's/ //' -e '/^$/d' > ${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
+ ${simulator} --board=jmr3904 $tfile | \
+ sed -e 's/ //' -e '/^$/d' > ${logfile} 2>&1 &
+ pid=$!
+
+ # Make sure it won't run forever...
+ millilimit=`expr ${max_run_time} \* 1000`
+ milliseconds=0
+ while :
+ do
+ # sleep 10ms at a time waiting for job to finish or timer to expire
+ # if job has exited, then we exit, too.
+ usleep 10000 # ten milliseconds
+ milliseconds=`expr ${milliseconds} + 10`
+ kill -0 $pid 2> /dev/null
+ running=$?
+ if [ $running -eq 0 ] ; then
+ if [ ${milliseconds} -ge ${millilimit} ]; then
+ kill -9 $pid 2> /dev/null
+ cat ${logfile}
+ echo "${testname} killed after running ${max_run_time} seconds"
+ break
+ fi
+ grep "^Unhandled exception" ${logfile} >/dev/null
+ exceptionExit=$?
+ grep "^mips-core: " ${logfile} >/dev/null
+ badAccessExit=$?
+ if [ $badAccessExit -eq 0 -o $exceptionExit -eq 0 ] ; then
+ kill -9 ${pid} >/dev/null 2>&1
+ cat ${logfile}
+ echo Ran in ${milliseconds} milliseconds
+ fi
+
+ else
+ # done normally
+ cat ${logfile}
+ echo "${testname} ran in ${milliseconds} milliseconds"
+ break
+ fi
+ done
fi
# Create the info files