/[escript]/branches/windows_from_1431_trunk/autotest-scons
ViewVC logotype

Diff of /branches/windows_from_1431_trunk/autotest-scons

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

revision 320 by svn, Tue Dec 6 04:35:27 2005 UTC revision 739 by ksteube, Tue Jun 20 00:52:56 2006 UTC
# Line 1  Line 1 
1  #!/bin/bash  #!/bin/sh
2    
3    #
4    # Submit a PBS job to run the tests
5    #
6    #   Usage: autotest-scons       # Short testing, only C++ tests
7    #   Usage: autotest-scons run_tests # Short testing, only C++ tests
8    #   Usage: autotest-scons all_tests # Long testing, C++ and python tests
9    #
10    # Copy this somewhere and run it every day via cron
11    #
12    # This file should be maintained in SVN as esys13/trunk/autotest-scons,
13    # be sure to copy it there and commit after modification
14    #
15    
16    # TODO: should try using the entire node: scons -j $NCPUS all_tests
17    # I've been told this produces poor results...why?
18    
19    # Which tests should we run?
20    target='run_tests'  # Default scons target that runs the tests
21    test "x$1" != "x" && target="$1"
22    
23    MAIL_RECIPIENTS="gross@esscc.uq.edu.au elspeth@esscc.uq.edu.au matt@esscc.uq.edu.au robert.woodcock@csiro.au Peter.Hornby@csiro.au k.steube@uq.edu.au"
24    # MAIL_RECIPIENTS="k.steube@uq.edu.au"
25    
26    RunDate=`date '+%Y_%m_%d'`  # Time stamp for log file names
27    
28    WorkDir=/raid3/ksteube/AutoTests
29    cd $WorkDir
30    
31    # Where to put the output of scons run_tests
32    out_file="$WorkDir/Logs/$RunDate.test.output"
33    
34    # Save the name of this script
35    SCRIPT_NAME=$0
36    
37  # $Id: autotest 162 2005-11-11 00:09:59Z svn $  # Below here \$variable means I want the variable interpreted when PBS runs the job, not when the job is submitted
38  # An explicit testing script for esys using the scons build system  # Similarly for \`...\`
39    
40    # Write the PBS script to run the tests
41    cat << EOF > Logs/$RunDate.pbs.script.sh
42    #!/bin/bash
43    
44  # list of users to email test results to  #PBS -q q1
45  #MAIL_RECIPIENTS="jgs@esscc.uq.edu.au gross@esscc.uq.edu.au cochrane@esscc.uq.edu.au elspeth@esscc.uq.edu.au matt@esscc.uq.edu.au"  #PBS -l ncpus=2
46  MAIL_RECIPIENTS="jgs@esscc.uq.edu.au"  #PBS -o $RunDate.pbs.stdout
47    #PBS -e $RunDate.pbs.stderr
48  # define compiler executable and library locations  
49  export PATH=/opt/intel/cmplrs/80.058/intel_cc_80/bin:$PATH  echo "PBS_JOBNAME       \$PBS_JOBNAME"
50  export LD_LIBRARY_PATH=/opt/intel/cmplrs/80.058/intel_cc_80/lib  echo "PBS_JOBID         \$PBS_JOBID"
51    echo "PBS_QUEUE         \$PBS_QUEUE"
52  echo cd $1  echo "NCPUS             \$NCPUS"
53  cd $1  echo "USER              \$USER"
54  if [ $? != 0 ]  echo "PBS_O_HOST        \$PBS_O_HOST"
55  then  echo "PBS_O_WORKDIR     \$PBS_O_WORKDIR"
56    echo couldnt cd $1  echo "PBS_O_SHELL       \$PBS_O_SHELL"
57    echo "couldnt cd $1" | mail -s "esys autotest results" $MAIL_RECIPIENTS  echo ""
58    exit 1  echo ""
59  fi  
60    
61  echo loading esys setup  
62  . ~jgs/bin/scons_setup  START=\`date '+%Y/%m/%d %H:%M'\`
63  if [ $? != 0 ]  
64  then  finish () {
65    echo couldnt load scons setup    END=\`date '+%Y/%m/%d %H:%M'\`
66    echo "couldnt load scons setup" | mail -s "esys autotest results" $MAIL_RECIPIENTS    cat << END_MSG | mail -s "ESYS_TESTS $target $RunDate \$1" $MAIL_RECIPIENTS
67    exit 2  \$2.
68  fi  The tests ran from \$START to \$END.
69    See the log files in $WorkDir/Logs for more information.
70  echo running svn update  This mail was sent by $SCRIPT_NAME
71  svn update  running as \$USER on \`hostname\`.
72  if [ $? != 0 ]  END_MSG
73  then    test "x$1" = "FAIL" && exit 1
74    echo svn update failed    exit 0
75    echo "svn update failed" | mail -s "esys autotest results" $MAIL_RECIPIENTS  }
76    exit 3  
77  fi  
78    cd $WorkDir             || finish FAILURE "Could not cd to WorkDir $WorkDir"
79  echo running scons debug=1  
80  scons debug=1  # Create an empty out_file
81  if [ $? != 0 ]  cat /dev/null > $out_file       || finish FAILURE "Could not create out_file $out_file"
82  then  
83    echo scons failed  umask 022
84    echo "scons failed - see autotest logfile" | mail -s "esys autotest results" $MAIL_RECIPIENTS  
85    exit 5  test -d sandbox.$RunDate        && finish FAILURE "Today's sandbox already exists"
86  fi  mkdir sandbox.$RunDate          || finish FAILURE "Could not mkdir sandbox"
87    cd sandbox.$RunDate         || finish FAILURE "Could not cd to sandbox"
88  echo running bruce unit_tests  
89  cd bruce/test  echo "Checking out esys13/trunk"
90  ./unit_test-scons  svn checkout svn+ssh://shake200.esscc.uq.edu.au/home/www_svn/repos/esys13/trunk >> $out_file 2>&1 || finish FAILURE "Could not check out esys13/trunk"
91  if [ $? != 0 ]  
92  then  # Load modules
93    echo bruce unit_test failed  . /opt/modules/default/init/bash
94    echo "bruce unit_test failed - see autotest logfile" | mail -s "esys autotest results" $MAIL_RECIPIENTS  module use /raid2/matt/modules/modulefiles
95    exit 6  module use /raid2/toolspp4/modulefiles/gcc-3.3.6
96  fi  module use /usr/share/modules/modulefiles
97  cd ../..  module load esys/env    # Matt's recommended modules
98    module load doxygen/1.4.6
99  echo running escript unit_tests  # The next line is to avoid /raid3/ksteube/AutoTests/sandbox.2006_06_17/trunk/build/posix/bruce/test/bruce_UnitTest: error while loading shared libraries: libboost_python-mt-d.so.1.33.0: cannot open shared object file: No such file or directory
100  cd escript/test  module load boost/1.33.0/python-2.4.1
101  ./unit_test-scons  
102  if [ $? != 0 ]  
103  then  # Had to request 2 CPUs, but only use one for the tests
104    echo escript unit_test failed  export OMP_NUM_THREADS=1
105    echo "escript unit_test failed - see autotest logfile" | mail -s "esys autotest results" $MAIL_RECIPIENTS  
106    exit 6  # Run the tests
107  fi  echo "Running the tests"
108  cd ../..  cd trunk                || finish FAILURE "Could not cd to trunk"
109    scons $target >> $out_file 2>&1     || finish FAILURE "Could not run scons $target"
110  echo running finley unit_tests  
111  cd finley/test  # Delete files older than 21 days
112  ./unit_test-scons  find $WorkDir -atime +21 -exec rm -f {} \;
113  if [ $? != 0 ]  
114  then  # Clean up the sandbox
115    echo finley unit_test failed  cd $WorkDir             || finish FAILURE "Could not cd to clean up WorkDir $WorkDir"
116    echo "finley unit_test failed - see autotest logfile" | mail -s "esys autotest results" $MAIL_RECIPIENTS  /bin/rm -rf sandbox.$RunDate        || finish FAILURE "Could not delete sandbox"
117    exit 6  
118  fi  finish SUCCESS "Successfully ran 'scons $target', see Logs in $WorkDir on ess"
119  cd ../..  
120    EOF
121  #echo running mk py_test  
122  #./mk py_test  # cd to the logs area so the PBS logs are deposited there
123  #if [ $? != 0 ]  cd $WorkDir/Logs
124  #then  
125  #  echo ./mk py_test failed  # Submit the job
126  #  echo "./mk py_test failed - see autotest logfile" | mail -s "esys autotest results" $MAIL_RECIPIENTS  . /opt/modules/default/init/sh
127  #  exit 7  module load pbspro
128  #fi  qsub -S /bin/bash $RunDate.pbs.script.sh > /dev/null
129    
 echo "success" | mail -s "esys autotest results" $MAIL_RECIPIENTS  
 exit 0  

Legend:
Removed from v.320  
changed lines
  Added in v.739

  ViewVC Help
Powered by ViewVC 1.1.26