diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-08-12 13:05:08 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-08-12 13:05:08 +0000 |
commit | 3c5939074cb50dd952ccf3133492f24635a45abc (patch) | |
tree | 48253323a88bbf622be56139121d54e1c512a441 | |
parent | 2008-08-11 Joel Sherrill <joel.sherrill@OARcorp.com> (diff) | |
download | rtems-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/ChangeLog | 4 | ||||
-rwxr-xr-x | c/src/lib/libbsp/mips/jmr3904/tools/runtest | 70 |
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 |