--- MITgcm/verification/testreport 2010/04/29 16:58:40 1.139 +++ MITgcm/verification/testreport 2010/11/05 16:45:02 1.148 @@ -1,6 +1,6 @@ #! /usr/bin/env bash # -# $Header: /home/ubuntu/mnt/e9_copy/MITgcm/verification/testreport,v 1.139 2010/04/29 16:58:40 jmc Exp $ +# $Header: /home/ubuntu/mnt/e9_copy/MITgcm/verification/testreport,v 1.148 2010/11/05 16:45:02 jmc Exp $ # $Name: $ # @@ -33,6 +33,7 @@ echo " (-adm|-ad) perform an adjoint run" echo " (-oad) perform an OpenAD adjoint run" echo " (-command|-c) STRING command to run" + echo " (-makedepend|-md) STRING command to use for \"makedepend\"" echo " (-make|-m) STRING command to use for \"make\"" echo " (DEF=\"make\")" echo " (-odir) STRING used to build output directory name" @@ -40,7 +41,7 @@ echo " (-ptracers|-ptr) STRING specify which ptracers to test" echo " (DEF=\"1 2 3 4 5\")" echo " (-match) NUMBER Matching Criteria (number of digits)" - echo " (DEF=\"12\")" + echo " (DEF=\"$MATCH_CRIT\")" echo " (-j) JOBS use \"make -j JOBS\" for parallel builds" echo " (-clean) *ONLY* run \"make CLEAN\"" echo " (-norun|-nr) skip the \"runmodel\" stage (stop after make)" @@ -317,6 +318,9 @@ ( cd $1; command="$GENMAKE2 -ds -m $MAKE" + if test "x$MKDEPEND" != x ; then + command="$command -makedepend=$MKDEPEND" + fi if test "x$ADM" = xt ; then command="$command --mods=../code_ad" elif test "x$OADM" = xt ; then @@ -354,14 +358,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" @@ -373,6 +377,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 @@ -381,12 +386,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 @@ -412,7 +418,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 @@ -430,12 +436,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 @@ -461,21 +467,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 @@ -829,6 +835,7 @@ HAVE_MPACK= MPACK= COMMAND= +MKDEPEND= if test "x$MAKE" = x ; then MAKE=make fi @@ -848,7 +855,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... " @@ -903,6 +910,11 @@ -command=* | --command=* | -c=* | --c=*) COMMAND=$ac_optarg ;; + -makedepend | --makedepend | -md | --md) + ac_prev=MKDEPEND ;; + -makedepend=* | --makedepend=* | -md=* | --md=*) + MKDEPEND=$ac_optarg ;; + -make | --make | -m | --m) ac_prev=MAKE ;; -make=* | --make=* | -m=* | --m=*) @@ -1005,8 +1017,12 @@ EXECUTABLE="mitgcmuv" fi +xx=`echo $TESTDIRS | awk '{print $1}'` if test "x$TESTDIRS" = x ; then LIST=`scandirs results/$ref_outp` +elif test $xx = 'start_from' ; then + xx=`echo $TESTDIRS | awk '{print $2}'` + LIST=`scandirs results/$ref_outp | sed -n "/$xx/,$ p"` else #- expand group of experiments: LIST=" " @@ -1050,7 +1066,7 @@ OPTFILE=$MITGCM_OF fi -RUNLOG="run.log" +RUNLOG="run.tr_log" OUTPUTFILE=$ref_outp if test "x$COMMAND" = x ; then COMMAND="./$EXECUTABLE > $OUTPUTFILE" @@ -1199,6 +1215,7 @@ builddir="build" if test ! -d $dir/$builddir ; then mkdir $dir/$builddir ; fi rundir="run" + pfxdir="tr_$rundir" if test ! -d $dir/$rundir ; then rundir=$builddir fi @@ -1209,12 +1226,16 @@ 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 fi - trdir=`( cd $dir ; find . -type d -name "tr_run.*" -print | sed 's/^.\///')` + trdir=`( cd $dir ; find . -type d -name "$pfxdir.*" -print | sed 's/^.\///')` ttd=`echo $trdir | wc -w` if test $ttd != 0 ; then echo ' --- rm dir:' $trdir @@ -1309,7 +1330,7 @@ && makedependmodel $dir/$builddir && makedepend=Y \ && makemodel $dir/$builddir && make=Y \ && run_clean $dir/$rundir \ - && linkdata $dir/$rundir $inputdir input \ + && linkdata $dir/$rundir $inputdir \ && runmodel $dir/$rundir && run=Y \ && results=`testoutput_run $dir $rundir $ref_outp` fi @@ -1339,11 +1360,11 @@ locDIR=$DRESULTS"/"$dir"."$ex mkdir $locDIR CDIR=`pwd`"/$locDIR" - test ! -e "$dir/tr_run.$ex" && mkdir "$dir/tr_run.$ex" - run_clean $dir/tr_run.$ex - linkdata $dir/tr_run.$ex $inputdir.$ex $inputdir input - runmodel $dir/tr_run.$ex && run=Y \ - && results=`testoutput_run $dir tr_run.$ex $refExOut` + test ! -e "$dir/$pfxdir.$ex" && mkdir "$dir/$pfxdir.$ex" + run_clean $dir/$pfxdir.$ex + linkdata $dir/$pfxdir.$ex $inputdir.$ex $inputdir + runmodel $dir/$pfxdir.$ex && run=Y \ + && results=`testoutput_run $dir $pfxdir.$ex $refExOut` fres=`formatresults $dir ${genmake:-N} ${makedepend:-N} ${make:-N} ${run:-N} $results` fres="$fres.$ex" echo 1>&2 @@ -1356,11 +1377,11 @@ echo "tdir='$dir.$ex'" >> $locDIR"/summary.txt" if test "x$ADM" = xt ; then head -1 $dir/$builddir/taf_ad.log >> $locDIR"/summary.txt" - grep -A3 'Seconds in section "ALL' $dir/tr_run.$ex/$OUTPUTFILE \ + grep -A3 'Seconds in section "ALL' $dir/$pfxdir.$ex/$OUTPUTFILE \ >> $locDIR"/summary.txt" fi if test "x$POSTCLEAN" = xt ; then - run_clean $dir/tr_run.$ex + run_clean $dir/$pfxdir.$ex fi done