--- MITgcm/verification/testreport 2003/09/02 21:06:21 1.3 +++ MITgcm/verification/testreport 2003/09/16 18:16:03 1.9 @@ -1,6 +1,6 @@ #!/bin/bash # -# $Header: /home/ubuntu/mnt/e9_copy/MITgcm/verification/testreport,v 1.3 2003/09/02 21:06:21 edhill Exp $ +# $Header: /home/ubuntu/mnt/e9_copy/MITgcm/verification/testreport,v 1.9 2003/09/16 18:16:03 edhill Exp $ # usage() @@ -10,9 +10,23 @@ echo echo "where possible OPTIONS are:" echo " (-help|-h) print usage" - echo " (-optfile=|-of=)STRING list of genmake2 \"optfiles\"" + echo " (-mpi) use MPI input files" + 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 " (-m|-make)STRING command to use for \"make\"" + echo " (DEF=\"make\")" + 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 } @@ -29,7 +43,7 @@ exit 1 fi echo -n "building mpack... " - ( cd $MPACKDIR && ./configure && make ) > build_mpack.out 2>&1 + ( cd $MPACKDIR && ./configure && $MAKE ) > build_mpack.out 2>&1 RETVAL=$? if test "x$RETVAL" != x0 ; then echo @@ -160,12 +174,12 @@ genmakemodel() { # genmakemodel directory - GENMAKE2="../../../tools/genmake2" + GENMAKE2="$BASH ../../../tools/genmake2" ( cd $1; printf 'genmake ... ' 1>&2 # ../../../tools/genmake -ieee -mods=../code > make.log 2>&1 - $GENMAKE2 -ds --mods=../code "--optfile="$OPTFILE > make.log 2>&1 + $GENMAKE2 -ds -m $MAKE --mods=../code "--optfile="$OPTFILE > make.log 2>&1 RETVAL=$? for i in gm_state gm_optfile gm_local Makefile ; do if test -r $i ; then @@ -188,10 +202,12 @@ # 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 + $MAKE CLEAN >> make.log 2>&1 RETVAL=$? if test "x$RETVAL" != x0 ; then tail make.log @@ -211,7 +227,7 @@ ( cd $1; printf 'make depend ... ' 1>&2 - make depend >> make.log 2>&1 + $MAKE depend >> make.log 2>&1 RETVAL=$? if test "x$RETVAL" != x0 ; then tail make.log @@ -231,7 +247,7 @@ cd $1; if test -r Makefile ; then printf 'make ... ' 1>&2 - make >> make.log 2>&1 + $MAKE >> make.log 2>&1 RETVAL=$? if test "x$RETVAL" != x0 ; then tail make.log @@ -257,24 +273,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 ) } @@ -383,16 +396,20 @@ # 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" +MAKE=make +MPI=f echo -n "parsing options... " @@ -428,11 +445,25 @@ -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 ;; + + -make | --make | -m | --m) + ac_prev=MAKE ;; + -make=* | --make=*) + MAKE=$ac_optarg ;; + + -mpi) MPI=t ;; -verbose) verbose=2 ;; -debug) debug=1 ;; -clean) clean=1 ;; - -noieee) ieee=0 ;; -quiet) verbose=0 ;; -*) @@ -514,7 +545,27 @@ | tee -a $SUMMARY continue fi - + + # Is this an MPI run? + if test "x$MPI" = xt ; then + if test ! -r $dir"/code/CPP_EEOPTIONS.h_mpi" -o ! -r $dir"/code/SIZE.h_mpi" ; then + echo | tee -a $SUMMARY + echo "can't read \"$dir/code/CPP_EEOPTIONS.h_mpi\" or \"$dir/code/SIZE.h_mpi\"" \ + | tee -a $SUMMARY + continue + else + cp $dir"/code/CPP_EEOPTIONS.h_mpi" $dir"/code/CPP_EEOPTIONS.h" + cp $dir"/code/SIZE.h_mpi" $dir"/code/SIZE.h" + fi + else + if test -r $dir"/code/CPP_EEOPTIONS.h_nompi" ; then + cp $dir"/code/CPP_EEOPTIONS.h_nompi" $dir"/code/CPP_EEOPTIONS.h" + fi + if test -r $dir"/code/SIZE.h_nompi" ; then + cp $dir"/code/SIZE.h_nompi" $dir"/code/SIZE.h" + fi + fi + # Create an output dir for each OPTFILE/tdir combination CDIR=$DRESULTS"/"$DRESULTS"_"$NDIR mkdir $CDIR @@ -544,7 +595,7 @@ && 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} \