diff options
author | Albert Cheng <acheng@hdfgroup.org> | 2001-08-21 23:41:10 (GMT) |
---|---|---|
committer | Albert Cheng <acheng@hdfgroup.org> | 2001-08-21 23:41:10 (GMT) |
commit | 2b6e7d2603ee0a23975de83541440f1ef4439b9e (patch) | |
tree | fef543fa2645d5d7daaab3e73777da42df51ce7f | |
parent | 8b0a3c5c1f7971a41c541ffd2f8b3a0612ddb091 (diff) | |
download | hdf5-2b6e7d2603ee0a23975de83541440f1ef4439b9e.zip hdf5-2b6e7d2603ee0a23975de83541440f1ef4439b9e.tar.gz hdf5-2b6e7d2603ee0a23975de83541440f1ef4439b9e.tar.bz2 |
[svn-r4405] Purpose:
Feature
Description:
Changed some output format.
Improved the CHECK_RSH to better report the result when failed.
Platforms tested:
eirene with nosuch and shalom. (made sure failures do occur)
-rwxr-xr-x | bin/runtest | 116 |
1 files changed, 73 insertions, 43 deletions
diff --git a/bin/runtest b/bin/runtest index f90289c..c8ade62 100755 --- a/bin/runtest +++ b/bin/runtest @@ -87,6 +87,16 @@ TESTHOST="" ################################# # Function definitions ################################# + +# Print messages to stdout +# Use this to show output heading to stdout +PRINT() +{ + echo "$*" +} + +# Show seconds since midnight. +# This is used to calculate seconds elapsed SecOfDay() { set `date '+%H %M %S'` @@ -113,11 +123,11 @@ REPORT_ERR() { ERRMSG=$1 # print it with a banner shifted right a bit - echo " *************************************" - echo " $ERRMSG" - echo " *************************************" + PRINT " *************************************" + PRINT " $ERRMSG" + PRINT " *************************************" # report it in the FAILED-LOG file too - (date; echo "$ERRMSG") >> $FAILEDLOG + (date; PRINT "$ERRMSG") >> $FAILEDLOG } # @@ -125,25 +135,25 @@ REPORT_ERR() REPORT_RESULT() { if [ $retcode -eq 0 ]; then - echo "PASSED: $TEST_TYPE tests for $HOSTNAME" | tee -a $PASSEDLOG + PRINT "PASSED ${HOSTNAME}: $TEST_TYPE" | tee -a $PASSEDLOG else # test failed. - REPORT_ERR "****FAILED: $TEST_TYPE tests for $HOSTNAME****" + REPORT_ERR "****FAILED ${HOSTNAME}: $TEST_TYPE****" fi } # Print a blank line PRINT_BLANK() { - echo + PRINT } # Print trailer summary PRINT_TRAILER() { - echo "*** finished $TEST_TYPE tests in $HOSTNAME ***" + PRINT "*** finished $TEST_TYPE tests in $HOSTNAME ***" date; EndTime=`SecOfDay` - echo Total time = `ElapsedTime $StartTime $EndTime` + PRINT Total time = `ElapsedTime $StartTime $EndTime` PRINT_BLANK # reset StartTime for the next elapsed time report StartTime=`SecOfDay` @@ -165,25 +175,26 @@ CHECK_RSH() elif ping localhost 3 >/dev/null 2>&1; then PING=ping PINGCOUNT=3 - else # don't know how to use ping. Set it to false. - PING=false + else # don't know how to use ping. + PING=no_ping PINGCOUNT= fi fi # host=$1 - if $PING $host $PINGCOUNT >/dev/null 2>&1; then + # Try remote command with host if it responds to ping. + # Still try it if we don't know how to do ping. + if [ no_ping = "$PING" ] || $PING $host $PINGCOUNT >/dev/null 2>&1; then if rsh $host -n hostname >/dev/null 2>&1; then RSH=rsh elif ssh $host -n hostname >/dev/null 2>&1; then RSH=ssh else - echo cannot remote command with $host - RSH="false" + PRINT cannot remote command with $host + RSH="NoRemoteCommand" fi else - echo $host is down - RSH="false" + RSH="NotReachable" fi } @@ -201,13 +212,13 @@ WAITFOR() nminutes=$2 if [ -z "$wait_file" -o ! "$nminutes" -ge 0 ] then - echo "errors in argument of WAITFOR(): wait_file($1) or nminutes($2)" + PRINT "errors in argument of WAITFOR(): wait_file($1) or nminutes($2)" WAIT_STATUS=-1 return fi while [ ! -f $wait_file ]; do if [ $nminutes -gt 0 ]; then - echo "Wait For $wait_file to appear" + PRINT "Wait For $wait_file to appear" sleep 60 #sleep 1 minute else WAIT_STATUS=1 @@ -234,13 +245,13 @@ WAITTILL() nminutes=$2 if [ -z "$wait_file" -o ! "$nminutes" -ge 0 ] then - echo "errors in argument of WAITTILL(): wait_file($1) or nminutes($2)" + PRINT "errors in argument of WAITTILL(): wait_file($1) or nminutes($2)" WAIT_STATUS=-1 return fi while [ -f $wait_file ]; do if [ $nminutes -gt 0 ]; then - echo "Wait till $wait_file has disappeared" + PRINT "Wait till $wait_file has disappeared" sleep 60 #sleep 1 minute else WAIT_STATUS=1 @@ -265,8 +276,8 @@ RUNSNAPTEST() TEST_TYPE=$* retcode=0 date - echo "*** starting $TEST_TYPE tests in $HOSTNAME ***" - echo "Uname -a: `uname -a`" + PRINT "*** starting $TEST_TYPE tests in $HOSTNAME ***" + PRINT "Uname -a: `uname -a`" # parse the test type and set options accordingly while [ $# -gt 0 ]; do @@ -298,7 +309,7 @@ RUNSNAPTEST() shift; shift ;; *) # unknown test - echo "$0: unknown type of test ($1)" + PRINT "$0: unknown type of test ($1)" retcode=1 shift ;; @@ -323,8 +334,9 @@ RUNSNAPTEST() # Setup log file name to save test output LOGFILE=${LOGBASENAME}${SRCDIRNAME}_${TODAY} - echo "Running snapshot with output saved in\n $LOGFILE" - (date; echo Hostname=$HOSTNAME) >> $LOGFILE + PRINT "Running snapshot with output saved in" + PRINT " $LOGFILE" + (date; PRINT Hostname=$HOSTNAME) >> $LOGFILE ( cd $SNAPYARD/current @@ -366,8 +378,8 @@ SNAPTEST_CONFIG_PARSE() *:) # ignore types of test for other hosts ;; *) # unknown configuration option - echo $x $y - echo "***Unknown configuration option. Ignored.***" + PRINT $x $y + PRINT "***Unknown configuration option. Ignored.***" ;; esac done @@ -446,7 +458,7 @@ while [ $# -gt 0 ]; do DEBUGMODE="$1" SNAPSHOT="echo bin/snapshot" PROGNAME="$PROGNAME $DEBUGMODE" - echo "******** DEBUGMODE is $DEBUGMODE ************" + PRINT "******** DEBUGMODE is $DEBUGMODE ************" ;; -r*) # the version string has a leading _ but not for H5DIR name @@ -464,7 +476,7 @@ while [ $# -gt 0 ]; do NOCVS=nocvs ;; -*) # Unknow option - echo "Unknown option ($1)" + PRINT "Unknown option ($1)" USAGE exit 1 ;; @@ -514,13 +526,14 @@ StartTime=`SecOfDay` # Process the configuration SNAPTEST_CONFIG -echo STANDARD_OPT=$STANDARD_OPT -echo TEST_TYPES=$TEST_TYPES +PRINT STANDARD_OPT=$STANDARD_OPT +PRINT TEST_TYPES=$TEST_TYPES # Do a checkout if one has not been done today # Also check MANIFEST file if [ -z "$NOCVS" -a ! -f $CVSLOG ]; then - echo "Running CVS checkout with output saved in\n $CVSLOG" + PRINT "Running CVS checkout with output saved in" + PRINT " $CVSLOG" # Set CVS lock first touch $CVSLOG_LOCK ($SNAPSHOT checkout ) >> $CVSLOG 2>&1 @@ -532,7 +545,7 @@ if [ -z "$NOCVS" -a ! -f $CVSLOG ]; then REPORT_ERR "****CVS checkout FAILED in $HOSTNAME****" exit $errcode fi - echo Checking MAINFEST file ... + PRINT Checking MAINFEST file ... (cd $SNAPYARD/current; bin/chkmanifest) errcode=$? if [ $errcode -ne 0 ]; then @@ -565,21 +578,37 @@ PROGNAME="$SNAPYARD/current/$PROGNAME" # Decide to do test for the local host or for remote hosts if [ -n "$TESTHOST" -a $HOSTNAME != "$TESTHOST" ]; then date - echo "*** launching tests from $HOSTNAME ***" + PRINT "*** launching tests from $HOSTNAME ***" PRINT_BLANK TEST_TYPE="launching" cd ${SNAPYARD}/log for h in $TESTHOST; do TMP_OUTPUT="#$h.out" + (PRINT "==============" + PRINT "Testing $h" + PRINT "==============") > $TMP_OUTPUT CHECK_RSH $h - # launch concurrent tests only if srcdir is used - if [ -n "$SRCDIR" ]; then - (echo $RSH $h -n $PROGNAME; - $RSH $h -n $PROGNAME) > $TMP_OUTPUT 2>&1 & - else - (echo $RSH $h -n $PROGNAME; - $RSH $h -n $PROGNAME) > $TMP_OUTPUT 2>&1 - fi + # run the remote shell command with output to $TMP_OUTPUT + case "$RSH" in + rsh|ssh) + PRINT $RSH $h -n $PROGNAME + # launch concurrent tests only if srcdir is used + if [ -n "$SRCDIR" ]; then + $RSH $h -n $PROGNAME & + else + $RSH $h -n $PROGNAME + fi + ;; + NoRemoteCommand) + PRINT $h does not accept Remote Command + ;; + NotReachable) + PRINT $h is not reachable + ;; + *) + PRINT "CHECK_RSH for $h returned unknow result ($RSH)" + ;; + esac >> $TMP_OUTPUT 2>&1 done # wait for all launched tests to finish, then cat them back out. wait @@ -588,7 +617,8 @@ if [ -n "$TESTHOST" -a $HOSTNAME != "$TESTHOST" ]; then cat $TMP_OUTPUT # Verify test script did complete by checking the last lines (tail -2 $TMP_OUTPUT | grep -s '^Total time' > /dev/null 2>&1) || - REPORT_ERR "****snaptest FAILED to complete in $h****" + (REPORT_ERR "****snaptest FAILED to complete in $h****" && + PRINT_BLANK) rm $TMP_OUTPUT done exit 0 |