2008-08-07 Joel Sherrill <joel.sherrill@OARcorp.com>

* runtest: Major update. Now more likely not to run away.
This commit is contained in:
Joel Sherrill
2008-08-07 18:51:05 +00:00
parent 02d989c0ef
commit 35454e27a0
2 changed files with 42 additions and 25 deletions

View File

@@ -1,3 +1,7 @@
2008-08-07 Joel Sherrill <joel.sherrill@OARcorp.com>
* runtest: Major update. Now more likely not to run away.
2008-08-05 Joel Sherrill <joel.sherrill@OARcorp.com> 2008-08-05 Joel Sherrill <joel.sherrill@OARcorp.com>
* runtest: Strip .exe or .ralf from file names. * runtest: Strip .exe or .ralf from file names.

View File

@@ -220,24 +220,37 @@ do
${simulator} --board=jmr3904 $tfile | \ ${simulator} --board=jmr3904 $tfile | \
sed -e 's/ sed -e 's/
//' -e '/^$/d' > ${logfile} 2>&1 & //' -e '/^$/d' > ${logfile} 2>&1 &
pid=$! pid=$!
# Make sure it won't run forever...
millilimit=`expr ${max_run_time} \* 1000` millilimit=`expr ${max_run_time} \* 1000`
time_run=0 milliseconds=0
while : while :
do do
# sleep 10ms at a time waiting for job to finish or timer to expire
# if job has exited, then we exit, too. # if job has exited, then we exit, too.
usleep 10000 # ten milliseconds usleep 10000 # ten milliseconds
sleep 5 milliseconds=`expr ${milliseconds} + 10`
kill -0 $pid 2> /dev/null kill -0 $pid 2> /dev/null
running=$?
if [ $running -eq 0 ]
then
running=$? running=$?
if [ $time_run -ge $max_run_time ] if [ $running -eq 0 ] ; then
if [ ${milliseconds} -ge ${millilimit} ]; then
kill -9 $pid 2> /dev/null
cat ${logfile} 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 echo Ran in ${milliseconds} milliseconds
ran_too_long="yes" fi
else
# done normally # done normally
cat ${logfile} cat ${logfile}
echo "${testname} ran in ${milliseconds} milliseconds" echo "${testname} ran in ${milliseconds} milliseconds"