diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-08-07 18:51:05 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-08-07 18:51:05 +0000 |
commit | 35454e27a07ef8ecf76baefc98237914735f5252 (patch) | |
tree | b1f2203a8fc563e69bafedd598a6e5e298827caf /c/src/lib/libbsp/mips | |
parent | 2008-08-07 Joel Sherrill <joel.sherrill@OARcorp.com> (diff) | |
download | rtems-35454e27a07ef8ecf76baefc98237914735f5252.tar.bz2 |
2008-08-07 Joel Sherrill <joel.sherrill@OARcorp.com>
* runtest: Major update. Now more likely not to run away.
Diffstat (limited to 'c/src/lib/libbsp/mips')
-rw-r--r-- | c/src/lib/libbsp/mips/jmr3904/tools/ChangeLog | 4 | ||||
-rwxr-xr-x | c/src/lib/libbsp/mips/jmr3904/tools/runtest | 65 |
2 files changed, 43 insertions, 26 deletions
diff --git a/c/src/lib/libbsp/mips/jmr3904/tools/ChangeLog b/c/src/lib/libbsp/mips/jmr3904/tools/ChangeLog index 27971368a0..c0c0cde90b 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-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> * runtest: Strip .exe or .ralf from file names. diff --git a/c/src/lib/libbsp/mips/jmr3904/tools/runtest b/c/src/lib/libbsp/mips/jmr3904/tools/runtest index ce8b6db197..62d693921c 100755 --- a/c/src/lib/libbsp/mips/jmr3904/tools/runtest +++ b/c/src/lib/libbsp/mips/jmr3904/tools/runtest @@ -215,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 |