--- MITgcm/verification/testreport 2003/09/01 16:50:27 1.2 +++ MITgcm/verification/testreport 2003/09/10 02:30:37 1.6 @@ -1,6 +1,6 @@ #!/bin/bash # -# $Header: /home/ubuntu/mnt/e9_copy/MITgcm/verification/testreport,v 1.2 2003/09/01 16:50:27 edhill Exp $ +# $Header: /home/ubuntu/mnt/e9_copy/MITgcm/verification/testreport,v 1.6 2003/09/10 02:30:37 edhill Exp $ # usage() @@ -10,9 +10,20 @@ echo echo "where possible OPTIONS are:" echo " (-help|-h) print usage" - echo " (-optfile=|-of=)STRING list of genmake2 \"optfiles\"" + echo " (-optfile=|-of=)STRING list of optfiles to use" echo " (-a|-addr)STRING list of email recipients" - echo " (-t|-tdir)STRING list of \"test\" dirs" + echo " (DEF=\"edhill@mitgcm.org\")" + echo " (-t|-tdir)STRING list of test dirs to use" + echo " (DEF=\"\" which builds all)" + echo " (-b|-bash)STRING location of \"bash\" executable" + echo " (DEF=\"\" for \"/bin/bash\")" + echo " (-c|-command)STRING command to run" + echo " (DEF=\"make output.txt\")" + echo + echo "and where STRING follows a whitespace-delimited format" + echo "such as:" + echo " -t 'exp0 exp2 exp3' " + echo " -addr='abc@123.com testing@home.org'" echo exit 1 } @@ -160,7 +171,7 @@ genmakemodel() { # genmakemodel directory - GENMAKE2="../../../tools/genmake2" + GENMAKE2="$BASH ../../../tools/genmake2" ( cd $1; printf 'genmake ... ' 1>&2 @@ -188,7 +199,9 @@ # makeclean directory ( cd $1; - rm -f output.txt + if test -e output.txt ; then + rm -f output.txt + fi printf 'make CLEAN ... ' 2>&1 if test -r Makefile ; then make CLEAN >> make.log 2>&1 @@ -257,24 +270,21 @@ runmodel() { - # runmodel directory exe + # runmodel directory # - # runs the model "exe" in "directory" (exe is relative to directory) + # runs "$COMMAND" in "directory" + # (where "$COMMAND" is relative to "directory") ( cd $1 - if [ -x $2 ]; then - if [ $quick -eq 0 ]; then - rm -f output.txt - fi - printf 'runmodel: ' 1>&2 - make output.txt - RETVAL=$? - if test "x$RETVAL" = x0 ; then - cp output.txt $CDIR"/output.txt" - return 0 - else - return 1 - fi + printf 'runmodel: ' 1>&2 + # make output.txt + $COMMAND + RETVAL=$? + if test "x$RETVAL" = x0 ; then + cp output.txt $CDIR"/output.txt" + return 0 + else + return 1 fi ) } @@ -315,7 +325,7 @@ return 0 else echo - echo "createcodelet: failed to compile codelet" | tee + echo "createcodelet: failed to compile codelet" exit 1 fi } @@ -383,16 +393,18 @@ # Default properties debug=0 verbose=1 -quick=0 clean=0 -ieee=1 expts='' +# ieee=1 +# quick=0 +BASH= OPTFILES= ADDRESSES=edhill@mitgcm.org TESTDIRS= MPACKDIR="../tools/mpack-1.6" MPACK="$MPACKDIR/mpack" +COMMAND="make output.txt" echo -n "parsing options... " @@ -428,11 +440,19 @@ -tdir=* | --tdir=*) TESTDIRS=$ac_optarg ;; - -quick) quick=1 ;; + -bash | --bash | -b | --b) + ac_prev=BASH ;; + -bash=* | --bash=*) + BASH=$ac_optarg ;; + + -command | --command | -c | --c) + ac_prev=COMMAND ;; + -command=* | --command=*) + COMMAND=$ac_optarg ;; + -verbose) verbose=2 ;; -debug) debug=1 ;; -clean) clean=1 ;; - -noieee) ieee=0 ;; -quiet) verbose=0 ;; -*) @@ -505,6 +525,15 @@ # ...and each test directory... for dir in $TESTDIRS ; do + + # Verify that the testdir exists and contains previous + # results in the correct location--or skip this directory! + if test ! -r $dir"/results/output.txt" ; then + echo | tee -a $SUMMARY + echo "can't read \"$dir/results/output.txt\" -- skipping $dir" \ + | tee -a $SUMMARY + continue + fi # Create an output dir for each OPTFILE/tdir combination CDIR=$DRESULTS"/"$DRESULTS"_"$NDIR @@ -530,21 +559,12 @@ rundir=input fi - # Verify that the testdir exists and contains previous - # results in the correct location--or skip this directory! - if test ! -r $dir"/results/output.txt" ; then - echo | tee $SUMMARY - echo "can't read \"$dir/results/output.txt\" -- skipping $dir" \ - | tee $SUMMARY - continue - fi - genmakemodel $dir/$builddir && genmake=Y \ && makeclean $dir/$builddir \ && makedependmodel $dir/$builddir && makedepend=Y \ && makemodel $dir/$builddir && make=Y \ && linkdata $seperatebuilddir $dir/$rundir \ - && runmodel $dir/$builddir mitgcmuv && run=Y \ + && runmodel $dir/$builddir && run=Y \ && results=`testoutput $dir $rundir` echo formatresults $dir ${genmake:-N} ${makedepend:-N} ${make:-N} \