From d8e0a60b9b56f6514cedc59c9af16b9c78eac060 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Fri, 11 May 2001 13:01:49 +0000 Subject: 2001-05-11 Joel Sherrill * tools/runtest: Add functionality to avoid letting simulator run too long. --- c/src/lib/libbsp/mips/jmr3904/ChangeLog | 5 +++++ c/src/lib/libbsp/mips/jmr3904/tools/runtest | 31 ++++++++++++++++++++++++----- 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/c/src/lib/libbsp/mips/jmr3904/ChangeLog b/c/src/lib/libbsp/mips/jmr3904/ChangeLog index f9a9eb4eae..b468de5725 100644 --- a/c/src/lib/libbsp/mips/jmr3904/ChangeLog +++ b/c/src/lib/libbsp/mips/jmr3904/ChangeLog @@ -1,3 +1,8 @@ +2001-05-11 Joel Sherrill + + * tools/runtest: Add functionality to avoid letting simulator + run too long. + 2001-04-20 Joel Sherrill * include/bsp.h (Clear_tm27_intr): Stop the timer and disable diff --git a/c/src/lib/libbsp/mips/jmr3904/tools/runtest b/c/src/lib/libbsp/mips/jmr3904/tools/runtest index aee74edd63..ade7cf1b83 100755 --- a/c/src/lib/libbsp/mips/jmr3904/tools/runtest +++ b/c/src/lib/libbsp/mips/jmr3904/tools/runtest @@ -213,12 +213,33 @@ do fi # Spin off the simulator in the background - # -c sets an instruction limit - # XXX need to make sure it won't run forever... - - ${simulator} --board=jmr3904 $tfile | \ - sed -e 's/ //' -e '/^$/d' > ${logfile} + ${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 fi # Create the info files -- cgit v1.2.3