--- MITgcm/verification/testreport 2010/10/21 21:29:42 1.143 +++ MITgcm/verification/testreport 2010/12/29 22:35:50 1.153 @@ -1,6 +1,6 @@ #! /usr/bin/env bash # -# $Header: /home/ubuntu/mnt/e9_copy/MITgcm/verification/testreport,v 1.143 2010/10/21 21:29:42 jmc Exp $ +# $Header: /home/ubuntu/mnt/e9_copy/MITgcm/verification/testreport,v 1.153 2010/12/29 22:35:50 jmc Exp $ # $Name: $ # @@ -25,6 +25,8 @@ echo " (-tdir|-t) STRING list of group and/or exp. dirs to test" echo " (recognized groups: basic, tutorials)" echo " (DEF=\"\" which test all)" + echo " (if list= 'start_from THIS_EXP' then" + echo " test THIS_EXP + all the following)" echo " (-skipdir|-skd) STRING list of exp. dirs to skip" echo " (DEF=\"\" which test all)" echo " (-bash|-b) STRING preferred location of a \"bash\" or" @@ -358,14 +360,14 @@ fi fi printf 'genmake ... ' - eval $command > make.log 2>&1 + eval $command > genmake.tr_log 2>&1 RETVAL=$? # Reduce the size of the testing emails! head -100 Makefile > $CDIR/Makefile_head if test "x$RETVAL" != x0 ; then - tail make.log + tail genmake.tr_log echo "genmakemodel: genmake failed" - cp genmake_* make.log $CDIR + cp genmake.log genmake_* genmake.tr_log $CDIR return 1 else echo "successful" @@ -377,6 +379,7 @@ makeclean() { # makeclean directory + if test "x$NODEPEND" = xf ; then rm -f $1/make.tr_log ; fi if test "x$NOCLEAN" = xt ; then echo "make Clean skipped!" else @@ -385,12 +388,13 @@ #if test -e $OUTPUTFILE ; then rm -f $OUTPUTFILE ; fi if test -r Makefile ; then printf 'clean build-dir: make Clean ... ' - $MAKE Clean >> make.log 2>&1 + rm -f Makefile.old + $MAKE Clean >> make.tr_log 2>&1 RETVAL=$? if test "x$RETVAL" != x0 ; then - tail make.log + tail make.tr_log echo "makeclean: \"make Clean\" failed" - cp make.log $CDIR"/make.log" + cp make.tr_log genmake.log genmake.tr_log $CDIR return 1 fi echo successful @@ -416,7 +420,7 @@ find . -name "*.data" -exec rm {} \; find . -name "fort.*" -exec rm {} \; find . -type l -exec rm {} \; - rm -f $EXECUTABLE *.txt STD* *diagnostics.log datetime + rm -f $EXECUTABLE $RUNLOG *.txt STD* *diagnostics.log datetime rm -rf mnc_test_* rm -f *_MIT_CE_000.opt0000 costfunction*0000 echo successful @@ -434,12 +438,12 @@ ( cd $1; printf 'make depend ... ' - $MAKE depend >> make.log 2>&1 + $MAKE depend >> make.tr_log 2>&1 RETVAL=$? if test "x$RETVAL" != x0 ; then - tail make.log + tail make.tr_log echo "makedependmodel: make depend failed" - cp make.log $CDIR"/make.log" + cp make.tr_log genmake.log genmake.tr_log $CDIR return 1 else echo successful @@ -465,21 +469,21 @@ if test -r Makefile ; then printf 'make ... ' if test "x$ADM" = xt ; then - $MAKE adall >> make.log 2>&1 + $MAKE adall >> make.tr_log 2>&1 elif test "x$OADM" = xt ; then - $MAKE adAll >> make.log 2>&1 + $MAKE adAll >> make.tr_log 2>&1 else if test "x$JOBS" = x ; then - $MAKE >> make.log 2>&1 + $MAKE >> make.tr_log 2>&1 else - $MAKE -j $JOBS >> make.log 2>&1 + $MAKE -j $JOBS >> make.tr_log 2>&1 fi fi RETVAL=$? if test "x$RETVAL" != x0 ; then - tail make.log + tail make.tr_log echo failed - cp make.log $CDIR"/make.log" + cp make.tr_log genmake.log genmake.tr_log $CDIR rm -f $EXECUTABLE return 1 else @@ -650,7 +654,8 @@ echo " no previous $RUNLOG: assume NORMAL END" >> $RUNLOG 2>&1 fi fi - ENDVAL=`cat $RUNLOG | grep -v 'ABNORMAL END' | grep -c 'NORMAL END'` + #ENDVAL=`cat $RUNLOG | grep -v 'ABNORMAL END' | grep -c 'NORMAL END'` + ENDVAL=`tail $OUTPUTFILE | grep -c 'PROGRAM MAIN: Execution ended Normally'` fi rm -f run.log_tmp if [ $RETVAL -eq 0 -a $ENDVAL -gt 0 ] ; then @@ -853,7 +858,7 @@ # list of pTracers to check for monitor output PTRACERS_NUM="1 2 3 4 5" -MATCH_CRIT=13 +MATCH_CRIT=10 printf "parsing options... " @@ -1064,7 +1069,7 @@ OPTFILE=$MITGCM_OF fi -RUNLOG="run.log" +RUNLOG="run.tr_log" OUTPUTFILE=$ref_outp if test "x$COMMAND" = x ; then COMMAND="./$EXECUTABLE > $OUTPUTFILE" @@ -1162,8 +1167,8 @@ fi else echo >> $SUMMARY - echo "No \"OPTFILE\" was explicitly specified by testreport," >> $SUMMARY - echo " so the genmake default will be used." >> $SUMMARY + echo "No \"OPTFILE\" was specified ; genmake2 found and uses:" >> $SUMMARY + #-note: to be filled later after 1rst run fi echo echo >> $SUMMARY @@ -1224,7 +1229,11 @@ if test "x$CLEANUP" = xt ; then echo -n ' --- dir:' $BUILD_DIR ': ' makeclean $BUILD_DIR - rm -f $BUILD_DIR/$EXECUTABLE + ( cd $BUILD_DIR + rm -f $EXECUTABLE *.bak + rm -f genmake_state genmake_*optfile genmake.log + rm -f genmake.tr_log make.tr_log + ) if test -d $dir/$rundir/CVS ; then echo -n ' --- dir:' $dir/$rundir ': ' run_clean $dir/$rundir @@ -1384,7 +1393,28 @@ mkOpt=`grep '^# OPTFILE=' $dir/$builddir/Makefile 2>/dev/null | head -1 | sed 's/^# //'` echo "from '$dir/$builddir/Makefile', extract:" > $DRESULTS/genmake_state sed -n '/^# executed by:/,+1 p' $dir/$builddir/Makefile >> $DRESULTS/genmake_state - echo $mkOpt >> $DRESULTS/genmake_state + echo " $mkOpt" >> $DRESULTS/genmake_state + if test "x$OPTFILE" = xNONE ; then + eval $mkOpt + sed "/^No \"OPTFILE\" was specified ; genmake2/a\ OPTFILE=${OPTFILE}"\ + $SUMMARY > tr_0.tmp_log + RETVAL=$? + if test "x$RETVAL" = x0 ; then rm -f $SUMMARY + cp tr_0.tmp_log $SUMMARY + else rm -f tr_0.tmp_log + fi + fi + gmkLog=$dir/$builddir/genmake.log + grep '^Get compiler version using:' $gmkLog > /dev/null 2>&1 + RETVAL=$? + if test "x$RETVAL" = x0 ; then + echo "from '$gmkLog', extract compiler version:" >> $DRESULTS/genmake_state + sed -n '/Get compiler version/,/<-- compiler version/p' $gmkLog \ + | grep -v '^... compiler version ' > tr_1.tmp_log + sed -n '1,/^$/p' tr_1.tmp_log | sed '/^$/d' | sed 's/^./ &/' \ + >> $DRESULTS/genmake_state + rm -f tr_1.tmp_log + fi fi fi #postclean $dir/$builddir