/[MITgcm]/MITgcm_contrib/test_scripts/other/test_local
ViewVC logotype

Diff of /MITgcm_contrib/test_scripts/other/test_local

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.7 by jmc, Wed Nov 7 23:10:02 2018 UTC revision 1.17 by jmc, Mon Oct 2 13:02:27 2023 UTC
# Line 3  Line 3 
3  # $Header$  # $Header$
4  # $Name$  # $Name$
5    
6    #-------------------------------------------------------------------------------
7    #-- process argument list:
8  if test $# = 0 ; then  if test $# = 0 ; then
9    echo 'need 1 argument'    echo 'need 1 argument'
10    exit    exit
# Line 13  else Line 15  else
15      dd1=`date +%d -d "1 day"`      dd1=`date +%d -d "1 day"`
16  #   if test $dd1 != '01' ; then echo 'not last day of month'; exit ; fi  #   if test $dd1 != '01' ; then echo 'not last day of month'; exit ; fi
17    elif test $1 = gfort ; then    elif test $1 = gfort ; then
18      tst_list='gadm gads gad4 gmp4 gmp2 gfo gfo4 g77'      tst_list='gadm gads gad4 gmp4 gmp2 gfo gfo4'
19    #   tst_list="$tst_list g77 g7a"
20      elif test $1 = tap ; then
21        tst_list='tapAD tapTL'
22    elif test $1 = gfor8 ; then    elif test $1 = gfor8 ; then
23  #   tst_list='gadm gads gmp2 gmpi gfo g77'  #   tst_list='gadm gads gmp2 gmpi gfo g77'
24      tst_list='gadm gads gmp2 gfo'      tst_list='gadm gads gmp2 gfo'
# Line 23  else Line 28  else
28      tst_list=$*      tst_list=$*
29    fi    fi
30  fi  fi
   echo "run: \""`basename $0` $*"\" on:" `date`  
   echo " tst_list='$tst_list'"  
31    
32  #- to get ~/bin in the patch (for staf) when run on cron:  #-------------------------------------------------------------------------------
33  if [ -d ~/bin ]; then  #-- general setting + MITgcm ref clone update:
34    echo 'add ~/bin to $PATH'  #
   export PATH=$PATH:~/bin  
 fi  
35  #- to get case insensitive "ls" (and order of tested experiments)  #- to get case insensitive "ls" (and order of tested experiments)
36  #export LC_ALL="en_US.UTF-8"  #export LC_ALL="en_US.UTF-8"
37  #- Turn off stack limit for FIZHI & AD-tests  #- Turn off stack limit for FIZHI & AD-tests
# Line 42  ulimit -s unlimited Line 43  ulimit -s unlimited
43   #git_repo='altMITgcm'; #git_code='MITgcm66h'   #git_repo='altMITgcm'; #git_code='MITgcm66h'
44  #- other settings:  #- other settings:
45  tmpFil="/tmp/"`basename $0`".$$"  tmpFil="/tmp/"`basename $0`".$$"
46  mAddr='jm_c@mitgcm.org'  logFile='check_update.log'
47    sendCmd='-a jm_c@mitgcm.org'
48    sendCmd='-send scp -a jm_c@mitgcm.org:testing/MITgcm-test'
49    #- expect higher precision if test is run on reference platform+compiler:
50    MC=13
51    
52    echo "-- run: \""`basename $0` $*"\" on:" `date` >> $logFile
53    gcmDIR="MITgcm"
54    if test -e $gcmDIR/.git/config ; then : ; else
55      echo " No current clone ==> get a fresh clone" >> $logFile
56      #rm -f git_Hash prevHash
57      if test -d $gcmDIR ; then /bin/rm -rf $gcmDIR ; fi
58      git clone https://github.com/$git_repo/${git_code}.git $gcmDIR
59      ( cd $gcmDIR ; git rev-parse HEAD > ../git_Hash )
60    fi
61    
62    #-------------------------------------------------------------------------------
63    #-- check particular set of tests:
64    if test $1 = tap ; then
65    #- Only run this pair of test if MITgcm code got updated:
66      if test -f git_Hash -a -f prevHash ; then
67       #ls -l prevHash  >> $logFile
68        diff -q git_Hash prevHash > /dev/null 2>&1
69        retv=$?
70        if test $retv = 0 ; then
71          echo " No update in repos since previous test ==> skip '$1' set of tests"  >> $logFile
72          exit 0
73        else
74          echo " Will run '$1' set of tests since repos has been updated" >> $logFile
75          echo -n ' prevHash: ' >> $logFile
76          cat prevHash >> $logFile
77          echo -n ' git_Hash: ' >> $logFile
78          cat git_Hash >> $logFile
79        fi
80      else
81        echo " No file 'prevHash' --> will run '$1' set of tests" >> $logFile
82      fi
83    elif test $1 = gfort ; then
84      #- to force to skip "tap" test while "gfort" is running:
85      if test -f prevHash ; then
86        cp -p prevHash git_Hash
87      else
88        cp -p git_Hash prevHash
89      fi
90    fi
91    
92    echo "run: \""`basename $0` $*"\" on:" `date`
93    echo " tst_list='$tst_list'"
94    
95    #- to get ~/bin in the patch (for staf) when run on cron:
96    if [ -d ~/bin ]; then
97      echo 'add ~/bin to $PATH'
98      export PATH=$PATH:~/bin
99    #- and for Tapenade:
100      echo $tst_list | grep '\<tap' > /dev/null 2>&1 ; retv=$?
101      if test $retv = 0 ; then
102        source ~jmc/bin/set_tapenade.sh
103      fi
104    fi
105    
106  #-- for now, cannot mix ifort/gfortran tests:  #- for now, cannot mix ifort/gfortran tests:
107  gfort=1  gfort=1
108  for tt in $tst_list  for tt in $tst_list
109  do  do
110    echo $tt | grep '^g' > /dev/null 2>&1 ; retv=$?    echo $tt | grep '^tap' > /dev/null 2>&1 ; retv=$?
111      if [ $retv -ne 0 ] ; then
112        echo $tt | grep '^g' > /dev/null 2>&1 ; retv=$?
113      fi
114    if   [ $retv -eq 0 -a $gfort -ge 1 ] ; then gfort=2    if   [ $retv -eq 0 -a $gfort -ge 1 ] ; then gfort=2
115    elif [ $retv -ne 0 -a $gfort -le 1 ] ; then gfort=0    elif [ $retv -ne 0 -a $gfort -le 1 ] ; then gfort=0
116    else echo 'cannot mix ifort/gfortran' ; exit    else echo 'cannot mix ifort/gfortran' ; exit
# Line 65  if [ $gfort -eq 2 ] ; then Line 127  if [ $gfort -eq 2 ] ; then
127     source ~jmc/bin/openmpi.sh     source ~jmc/bin/openmpi.sh
128  fi  fi
129    
130  #--------------------------------------------------------------------  #-------------------------------------------------------------------------------
131    #-- Update & Run individual test:
132  for tt in $tst_list  for tt in $tst_list
133  do  do
134    
135    #- Clean and Update testing clone: ---------------------------------------------
136    gcmDIR="MITgcm_$tt"    gcmDIR="MITgcm_$tt"
137    echo "=========================================================================="    echo "=========================================================================="
138  # set -x  # set -x
139    rm -f tr_clean_$tt.log    rm -f tr_clean_$tt.log
140    echo $tt | grep '^.ad' > /dev/null 2>&1 ; fwd=$?    echo $tt | grep '^.ad' > /dev/null 2>&1 ; taf=$?
141    echo " testing tt= $tt , fwd= $fwd"    echo $tt | grep '^tap' > /dev/null 2>&1 ; tap=$?
142      if test $tt = g7a ; then taf=0 ; fi
143      echo " testing tt= $tt , taf= $taf , tap= $tap"
144   if test -e $gcmDIR/.git/config -a -d $gcmDIR/verification ; then   if test -e $gcmDIR/.git/config -a -d $gcmDIR/verification ; then
145   #- cleaning previous testreport run and updating the code:   #- cleaning previous testreport run and updating the code:
146    if [ $fwd -eq 0 ] ; then    if [ $taf -eq 0 -o $tap -eq 0 ] ; then
147       if test $tt = 'tapTL' ; then clOpt='-tlm' ; else clOpt='-adm' ; fi
148       if [ $tap -eq 0 ] ; then clOpt="-tap $clOpt" ; fi
149     set -x     set -x
150    #- cleanup previous test:    #- cleanup previous test:
151     ( cd $gcmDIR/verification ; ./testreport -adm -clean > ../../tr_clean_$tt.log 2>&1 )     ( cd $gcmDIR/verification ; ./testreport $clOpt -clean > ../../tr_clean_$tt.log 2>&1 )
152     set +x     set +x
153    else    else
154     set -x     set -x
# Line 147  do Line 215  do
215    pwd    pwd
216    test -e tr_out.txt && mv -f tr_out.txt tr_out.sav    test -e tr_out.txt && mv -f tr_out.txt tr_out.sav
217    
218    #- Run test in corresponding clone: --------------------------------------------
219  case $tt in  case $tt in
220  'iadm' )  'iadm' )
221    
# Line 155  case $tt in Line 224  case $tt in
224    echo '' >> ../../tr_run_$tt.log 2>&1    echo '' >> ../../tr_run_$tt.log 2>&1
225    
226    ./testreport -MPI 3 -adm -of ../tools/build_options/linux_amd64_ifort11 \    ./testreport -MPI 3 -adm -of ../tools/build_options/linux_amd64_ifort11 \
227     -devel -q -a $mAddr >> ../../tr_run_$tt.log 2>&1     -devel -q $sendCmd >> ../../tr_run_$tt.log 2>&1
228    
229    sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log    sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
230  ;;  ;;
# Line 167  case $tt in Line 236  case $tt in
236    echo '' >> ../../tr_run_$tt.log 2>&1    echo '' >> ../../tr_run_$tt.log 2>&1
237    
238    ./testreport -MPI 3 -ur4 -adm -of ../tools/build_options/linux_amd64_ifort11 \    ./testreport -MPI 3 -ur4 -adm -of ../tools/build_options/linux_amd64_ifort11 \
239     -devel -q -match 5 -a $mAddr >> ../../tr_run_$tt.log 2>&1     -devel -q -match 5 $sendCmd >> ../../tr_run_$tt.log 2>&1
240    
241    sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log    sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
242  ;;  ;;
# Line 182  case $tt in Line 251  case $tt in
251    echo '' >> ../../tr_run_$tt.log 2>&1    echo '' >> ../../tr_run_$tt.log 2>&1
252    
253    ./testreport -MPI 2 -mth -of ../tools/build_options/linux_amd64_ifort11 \    ./testreport -MPI 2 -mth -of ../tools/build_options/linux_amd64_ifort11 \
254     -devel -q -a $mAddr >> ../../tr_run_$tt.log 2>&1     -devel -q $sendCmd >> ../../tr_run_$tt.log 2>&1
255    
256    sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log    sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
257    
258    #- test restart:    #- test restart:
259    echo '' >> ../../tr_run_$tt.log 2>&1    echo '' >> ../../tr_run_$tt.log 2>&1
260    ../tools/do_tst_2+2 -mpi -a $mAddr >> ../../tr_run_$tt.log 2>&1    ../tools/do_tst_2+2 -mpi $sendCmd >> ../../tr_run_$tt.log 2>&1
261      sed -n '/^=====  Summary /,$ p' ../../tr_run_$tt.log
262  ;;  ;;
263    
264  'iur4')  'iur4')
# Line 198  case $tt in Line 268  case $tt in
268    echo '' >> ../../tr_run_$tt.log 2>&1    echo '' >> ../../tr_run_$tt.log 2>&1
269    
270    ./testreport -MPI 3 -ur4 -of ../tools/build_options/linux_amd64_ifort11 \    ./testreport -MPI 3 -ur4 -of ../tools/build_options/linux_amd64_ifort11 \
271     -devel -q -match 5 -a $mAddr >> ../../tr_run_$tt.log 2>&1     -devel -q -match 5 $sendCmd >> ../../tr_run_$tt.log 2>&1
272    
273    sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log    sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
274    
275    #- test restart:    #- test restart:
276    echo '' >> ../../tr_run_$tt.log 2>&1    echo '' >> ../../tr_run_$tt.log 2>&1
277    ../tools/do_tst_2+2 -mpi -a $mAddr >> ../../tr_run_$tt.log 2>&1    ../tools/do_tst_2+2 -mpi $sendCmd >> ../../tr_run_$tt.log 2>&1
278      sed -n '/^=====  Summary /,$ p' ../../tr_run_$tt.log
279  ;;  ;;
280    
281  'gadm')  'gadm')
282    
283    ./testreport -MPI 3 -adm -of ../tools/build_options/linux_amd64_gfortran \    ./testreport -MPI 3 -adm -of ../tools/build_options/linux_amd64_gfortran \
284     -devel -ncad -nc -a $mAddr >> ../../tr_run_$tt.log 2>&1     -devel -ncad -nc $sendCmd >> ../../tr_run_$tt.log 2>&1
285    
286    sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log    sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
287  ;;  ;;
# Line 218  case $tt in Line 289  case $tt in
289  'gads')  'gads')
290    
291    ./testreport -adm -of ../tools/build_options/linux_amd64_gfortran \    ./testreport -adm -of ../tools/build_options/linux_amd64_gfortran \
292     -devel -ncad -nc -a $mAddr >> ../../tr_run_$tt.log 2>&1     -devel -ncad -nc $sendCmd >> ../../tr_run_$tt.log 2>&1
293    
294    sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log    sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
295  ;;  ;;
# Line 226  case $tt in Line 297  case $tt in
297  'gad4')  'gad4')
298    
299    ./testreport -adm -ur4 -of ../tools/build_options/linux_amd64_gfortran \    ./testreport -adm -ur4 -of ../tools/build_options/linux_amd64_gfortran \
300     -devel -ncad -nc -match 5 -a $mAddr >> ../../tr_run_$tt.log 2>&1     -devel -ncad -nc -match 5 $sendCmd >> ../../tr_run_$tt.log 2>&1
301    
302      sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
303    ;;
304    
305    'tapAD')
306    
307      ./testreport -tap -adm -of ../tools/build_options/linux_amd64_gfortran \
308       -match $MC $sendCmd >> ../../tr_run_$tt.log 2>&1
309    
310      sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
311    ;;
312    
313    'tapTL')
314    
315      ./testreport -tap -tlm -of ../tools/build_options/linux_amd64_gfortran \
316       -match $MC $sendCmd >> ../../tr_run_$tt.log 2>&1
317    
318      sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
319    ;;
320    
321    'g7a')
322    
323      ./testreport -adm -of ../tools/build_options/linux_amd64_g77 \
324       -skd 'halfpipe_streamice' \
325       -nc $sendCmd >> ../../tr_run_$tt.log 2>&1
326    
327    sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log    sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
328  ;;  ;;
# Line 237  case $tt in Line 333  case $tt in
333    export GOMP_STACKSIZE=400m    export GOMP_STACKSIZE=400m
334    
335    ./testreport -MPI 2 -mth -of ../tools/build_options/linux_amd64_gfortran \    ./testreport -MPI 2 -mth -of ../tools/build_options/linux_amd64_gfortran \
336     -devel -nc -a $mAddr >> ../../tr_run_$tt.log 2>&1     -devel -nc $sendCmd >> ../../tr_run_$tt.log 2>&1
337    
338    sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log    sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
339    
340    #- test restart:    #- test restart:
341    echo '' >> ../../tr_run_$tt.log 2>&1    echo '' >> ../../tr_run_$tt.log 2>&1
342    ../tools/do_tst_2+2 -mpi -a $mAddr >> ../../tr_run_$tt.log 2>&1    ../tools/do_tst_2+2 -mpi $sendCmd >> ../../tr_run_$tt.log 2>&1
343      sed -n '/^=====  Summary /,$ p' ../../tr_run_$tt.log
344  ;;  ;;
345    
346  'gmpi')  'gmpi')
347    
348    ./testreport -MPI 3 -of ../tools/build_options/linux_amd64_gfortran \    ./testreport -MPI 3 -of ../tools/build_options/linux_amd64_gfortran \
349     -devel -nc -a $mAddr >> ../../tr_run_$tt.log 2>&1     -devel -nc $sendCmd >> ../../tr_run_$tt.log 2>&1
350    
351    sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log    sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
352    
353    #- test restart:    #- test restart:
354    echo '' >> ../../tr_run_$tt.log 2>&1    echo '' >> ../../tr_run_$tt.log 2>&1
355    ../tools/do_tst_2+2 -mpi -a $mAddr >> ../../tr_run_$tt.log 2>&1    ../tools/do_tst_2+2 -mpi $sendCmd >> ../../tr_run_$tt.log 2>&1
356      sed -n '/^=====  Summary /,$ p' ../../tr_run_$tt.log
357  ;;  ;;
358    
359  'gmp4')  'gmp4')
360    
361    ./testreport -MPI 3 -ur4 -of ../tools/build_options/linux_amd64_gfortran \    ./testreport -MPI 3 -ur4 -of ../tools/build_options/linux_amd64_gfortran \
362     -devel -nc -match 5 -a $mAddr >> ../../tr_run_$tt.log 2>&1     -devel -nc -match 5 $sendCmd >> ../../tr_run_$tt.log 2>&1
363    
364    sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log    sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
365    
366    #- test restart:    #- test restart:
367    echo '' >> ../../tr_run_$tt.log 2>&1    echo '' >> ../../tr_run_$tt.log 2>&1
368    ../tools/do_tst_2+2 -mpi -a $mAddr >> ../../tr_run_$tt.log 2>&1    ../tools/do_tst_2+2 -mpi $sendCmd >> ../../tr_run_$tt.log 2>&1
369      sed -n '/^=====  Summary /,$ p' ../../tr_run_$tt.log
370  ;;  ;;
371    
372  'gfo')  'gfo')
373    
374    ./testreport -of ../tools/build_options/linux_amd64_gfortran \    ./testreport -of ../tools/build_options/linux_amd64_gfortran \
375     -devel -nc -a $mAddr >> ../../tr_run_$tt.log 2>&1     -devel -nc $sendCmd >> ../../tr_run_$tt.log 2>&1
376    
377    sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log    sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
378    
379    #- test restart:    #- test restart:
380    echo '' >> ../../tr_run_$tt.log 2>&1    echo '' >> ../../tr_run_$tt.log 2>&1
381    ../tools/do_tst_2+2 -a $mAddr >> ../../tr_run_$tt.log 2>&1    ../tools/do_tst_2+2 $sendCmd >> ../../tr_run_$tt.log 2>&1
382      sed -n '/^=====  Summary /,$ p' ../../tr_run_$tt.log
383  ;;  ;;
384    
385  'gfo4')  'gfo4')
386    
387    ./testreport -ur4 -of ../tools/build_options/linux_amd64_gfortran \    ./testreport -ur4 -of ../tools/build_options/linux_amd64_gfortran \
388     -devel -nc -match 5 -a $mAddr >> ../../tr_run_$tt.log 2>&1     -devel -nc -match 5 $sendCmd >> ../../tr_run_$tt.log 2>&1
389    
390    sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log    sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
391    
392    #- test restart:    #- test restart:
393    echo '' >> ../../tr_run_$tt.log 2>&1    echo '' >> ../../tr_run_$tt.log 2>&1
394    ../tools/do_tst_2+2 -a $mAddr >> ../../tr_run_$tt.log 2>&1    ../tools/do_tst_2+2 $sendCmd >> ../../tr_run_$tt.log 2>&1
395      sed -n '/^=====  Summary /,$ p' ../../tr_run_$tt.log
396  ;;  ;;
397    
398  'g77')  'g77')
399    
400    ./testreport -of ../tools/build_options/linux_amd64_g77 \    ./testreport -of ../tools/build_options/linux_amd64_g77 \
401     -skd 'fizhi-cs-32x32x40 fizhi-cs-aqualev20' \     -skd 'fizhi-cs-32x32x40 fizhi-cs-aqualev20 halfpipe_streamice internal_wave tutorial_advection_in_gyre' \
402     -nc -a $mAddr >> ../../tr_run_$tt.log 2>&1     -nc $sendCmd >> ../../tr_run_$tt.log 2>&1
403    
404    sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log    sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log
405    
406    #- test restart:    #- test restart:
407    echo '' >> ../../tr_run_$tt.log 2>&1    echo '' >> ../../tr_run_$tt.log 2>&1
408    ../tools/do_tst_2+2 -a $mAddr >> ../../tr_run_$tt.log 2>&1    ../tools/do_tst_2+2 $sendCmd >> ../../tr_run_$tt.log 2>&1
409      sed -n '/^=====  Summary /,$ p' ../../tr_run_$tt.log
410  ;;  ;;
411    
412  *) echo "unrecognized test suffix '$tt' <== skipped" ;;  *) echo "unrecognized test suffix '$tt' <== skipped" ;;
# Line 318  esac Line 420  esac
420   fi   fi
421    
422  done  done
423    
424    if test $1 = gfort ; then
425      day=`date +%d`
426      echo " day in the month='${day}'"
427      if test $day = 01 -a -f git_Hash ; then
428        ls -l git_Hash
429        echo -n ' git_Hash: '
430        cat git_Hash
431        echo "Remove file 'git_Hash' to force tomorrow 'tap' testing"
432        rm -f git_Hash
433      fi
434    fi

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.17

  ViewVC Help
Powered by ViewVC 1.1.22