| 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 |
|
logFile='check_update.log' |
| 47 |
sendCmd='-a jm_c@mitgcm.org' |
sendCmd='-a jm_c@mitgcm.org' |
| 48 |
sendCmd='-send scp -a jm_c@mitgcm.org:testing/MITgcm-test' |
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 |
|
|
|
gcmDIR="MITgcm" |
|
|
logFile='check_update.log' |
|
| 52 |
echo "-- run: \""`basename $0` $*"\" on:" `date` >> $logFile |
echo "-- run: \""`basename $0` $*"\" on:" `date` >> $logFile |
| 53 |
if test -e $gcmDIR/.git/config -a -f git_Hash ; then |
gcmDIR="MITgcm" |
| 54 |
mv git_Hash prevHash |
if test -e $gcmDIR/.git/config ; then |
| 55 |
( cd $gcmDIR ; git pull > /dev/null ) |
if test ! -f git_Hash ; then |
| 56 |
( cd $gcmDIR ; git rev-parse HEAD > ../git_Hash ) |
echo " Missing file "git_Hash" ==> make one from clone '${gcmDIR}'" >> $logFile |
| 57 |
|
( cd $gcmDIR ; git rev-parse HEAD > ../git_Hash ) |
| 58 |
|
fi |
| 59 |
else |
else |
| 60 |
echo " No current clone or missing file "git_Hash" ==> get a fresh clone" >> $logFile |
echo " No current clone ==> get a fresh clone" >> $logFile |
| 61 |
rm -f prevHash |
#rm -f git_Hash prevHash |
| 62 |
if test -d $gcmDIR ; then /bin/rm -rf $gcmDIR ; fi |
if test -d $gcmDIR ; then /bin/rm -rf $gcmDIR ; fi |
| 63 |
git clone https://github.com/$git_repo/${git_code}.git $gcmDIR |
git clone https://github.com/$git_repo/${git_code}.git $gcmDIR |
| 64 |
( cd $gcmDIR ; git rev-parse HEAD > ../git_Hash ) |
( cd $gcmDIR ; git rev-parse HEAD > ../git_Hash ) |
| 65 |
fi |
fi |
| 66 |
|
|
| 67 |
#------------------------------------------------------------------------------- |
#------------------------------------------------------------------------------- |
| 68 |
#-- check particular set of tests: |
#-- check particular set of tests: |
| 69 |
if test $1 = tap ; then |
if test $1 = tap ; then |
| 70 |
#- Only run this pair of test if MITgcm code got updated: |
#- Only run this pair of test if MITgcm code got updated: |
| 71 |
if test -f prevHash ; then |
if test -f git_Hash -a -f prevHash ; then |
| 72 |
#ls -l prevHash >> $logFile |
#ls -l prevHash >> $logFile |
| 73 |
diff -q git_Hash prevHash > /dev/null 2>&1 |
diff -q git_Hash prevHash > /dev/null 2>&1 |
| 74 |
retv=$? |
retv=$? |
| 85 |
else |
else |
| 86 |
echo " No file 'prevHash' --> will run '$1' set of tests" >> $logFile |
echo " No file 'prevHash' --> will run '$1' set of tests" >> $logFile |
| 87 |
fi |
fi |
| 88 |
|
elif test $1 = gfort ; then |
| 89 |
|
#- to force to skip "tap" test while "gfort" is running: |
| 90 |
|
if test -f prevHash ; then |
| 91 |
|
cp -p prevHash git_Hash |
| 92 |
|
else |
| 93 |
|
cp -p git_Hash prevHash |
| 94 |
|
fi |
| 95 |
fi |
fi |
| 96 |
|
|
| 97 |
echo "run: \""`basename $0` $*"\" on:" `date` |
echo "run: \""`basename $0` $*"\" on:" `date` |
| 113 |
for tt in $tst_list |
for tt in $tst_list |
| 114 |
do |
do |
| 115 |
echo $tt | grep '^tap' > /dev/null 2>&1 ; retv=$? |
echo $tt | grep '^tap' > /dev/null 2>&1 ; retv=$? |
| 116 |
if [ $retv -ne 0 ] ; then |
if [ $retv -ne 0 ] ; then |
| 117 |
echo $tt | grep '^g' > /dev/null 2>&1 ; retv=$? |
echo $tt | grep '^g' > /dev/null 2>&1 ; retv=$? |
| 118 |
fi |
fi |
| 119 |
if [ $retv -eq 0 -a $gfort -ge 1 ] ; then gfort=2 |
if [ $retv -eq 0 -a $gfort -ge 1 ] ; then gfort=2 |
| 142 |
echo "==========================================================================" |
echo "==========================================================================" |
| 143 |
# set -x |
# set -x |
| 144 |
rm -f tr_clean_$tt.log |
rm -f tr_clean_$tt.log |
| 145 |
echo $tt | grep '^.ad' > /dev/null 2>&1 ; fwd=$? |
echo $tt | grep '^.ad' > /dev/null 2>&1 ; taf=$? |
| 146 |
echo $tt | grep '^tap' > /dev/null 2>&1 ; tap=$? |
echo $tt | grep '^tap' > /dev/null 2>&1 ; tap=$? |
| 147 |
if test $tt = g7a -o $tap = 0 ; then fwd=0 ; clOpt='-adm' ; fi |
if test $tt = g7a ; then taf=0 ; fi |
| 148 |
echo " testing tt= $tt , fwd= $fwd" |
echo " testing tt= $tt , taf= $taf , tap= $tap" |
| 149 |
if test -e $gcmDIR/.git/config -a -d $gcmDIR/verification ; then |
if test -e $gcmDIR/.git/config -a -d $gcmDIR/verification ; then |
| 150 |
#- cleaning previous testreport run and updating the code: |
#- cleaning previous testreport run and updating the code: |
| 151 |
if [ $fwd -eq 0 ] ; then |
if [ $taf -eq 0 -o $tap -eq 0 ] ; then |
| 152 |
if test $tt = 'tapAD' ; then clOpt='-tap -adm' ; fi |
if test $tt = 'tapTL' ; then clOpt='-tlm' ; else clOpt='-adm' ; fi |
| 153 |
if test $tt = 'tapTL' ; then clOpt='-tap -tlm' ; fi |
if [ $tap -eq 0 ] ; then clOpt="-tap $clOpt" ; fi |
| 154 |
set -x |
set -x |
| 155 |
#- cleanup previous test: |
#- cleanup previous test: |
| 156 |
( cd $gcmDIR/verification ; ./testreport $clOpt -clean > ../../tr_clean_$tt.log 2>&1 ) |
( cd $gcmDIR/verification ; ./testreport $clOpt -clean > ../../tr_clean_$tt.log 2>&1 ) |
| 310 |
'tapAD') |
'tapAD') |
| 311 |
|
|
| 312 |
./testreport -tap -adm -of ../tools/build_options/linux_amd64_gfortran \ |
./testreport -tap -adm -of ../tools/build_options/linux_amd64_gfortran \ |
| 313 |
$sendCmd >> ../../tr_run_$tt.log 2>&1 |
-match $MC $sendCmd >> ../../tr_run_$tt.log 2>&1 |
| 314 |
|
|
| 315 |
sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log |
sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log |
| 316 |
;; |
;; |
| 318 |
'tapTL') |
'tapTL') |
| 319 |
|
|
| 320 |
./testreport -tap -tlm -of ../tools/build_options/linux_amd64_gfortran \ |
./testreport -tap -tlm -of ../tools/build_options/linux_amd64_gfortran \ |
| 321 |
$sendCmd >> ../../tr_run_$tt.log 2>&1 |
-match $MC $sendCmd >> ../../tr_run_$tt.log 2>&1 |
| 322 |
|
|
| 323 |
sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log |
sed -n "/ email /,/^======== End of testreport / p" ../../tr_run_$tt.log |
| 324 |
;; |
;; |
| 425 |
fi |
fi |
| 426 |
|
|
| 427 |
done |
done |
| 428 |
|
|
| 429 |
|
if test $1 = gfort ; then |
| 430 |
|
day=`date +%d` |
| 431 |
|
echo " day in the month='${day}'" |
| 432 |
|
if test $day = 01 -a -f git_Hash ; then |
| 433 |
|
ls -l git_Hash |
| 434 |
|
echo -n ' git_Hash: ' |
| 435 |
|
cat git_Hash |
| 436 |
|
echo "Remove file 'git_Hash' to force tomorrow 'tap' testing" |
| 437 |
|
rm -f git_Hash |
| 438 |
|
fi |
| 439 |
|
fi |