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

Annotation of /branches/arrayview_from_1695_trunk/autotest-scons

Parent Directory Parent Directory | Revision Log Revision Log


Revision 739 - (hide annotations)
Tue Jun 20 00:52:56 2006 UTC (12 years, 10 months ago) by ksteube
Original Path: trunk/autotest-scons
File size: 4053 byte(s)
Major rewrite:  now submits a PBS job to run tests on one CPU.  Log
files from run are saved in /raid3/ksteube/AutoTests.  Runs short
version run_tests or long version all_tests based on value of
command-line argument.


1 ksteube 739 #!/bin/sh
2    
3 gross 707 #
4 ksteube 739 # Submit a PBS job to run the tests
5 gross 707 #
6 ksteube 739 # 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 gross 707 #
10 ksteube 739 # Copy this somewhere and run it every day via cron
11 gross 707 #
12 ksteube 739 # 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 jgs 318
16 ksteube 739 # TODO: should try using the entire node: scons -j $NCPUS all_tests
17     # I've been told this produces poor results...why?
18 jgs 318
19 ksteube 739 # Which tests should we run?
20     target='run_tests' # Default scons target that runs the tests
21     test "x$1" != "x" && target="$1"
22 jgs 321
23 ksteube 739 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 elspeth 721
26 ksteube 739 RunDate=`date '+%Y_%m_%d'` # Time stamp for log file names
27 svn 346
28 ksteube 739 WorkDir=/raid3/ksteube/AutoTests
29     cd $WorkDir
30 elspeth 721
31 ksteube 739 # Where to put the output of scons run_tests
32     out_file="$WorkDir/Logs/$RunDate.test.output"
33 jgs 321
34 ksteube 739 # Save the name of this script
35     SCRIPT_NAME=$0
36    
37     # Below here \$variable means I want the variable interpreted when PBS runs the job, not when the job is submitted
38     # 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     #PBS -q q1
45     #PBS -l ncpus=2
46     #PBS -o $RunDate.pbs.stdout
47     #PBS -e $RunDate.pbs.stderr
48    
49     echo "PBS_JOBNAME \$PBS_JOBNAME"
50     echo "PBS_JOBID \$PBS_JOBID"
51     echo "PBS_QUEUE \$PBS_QUEUE"
52     echo "NCPUS \$NCPUS"
53     echo "USER \$USER"
54     echo "PBS_O_HOST \$PBS_O_HOST"
55     echo "PBS_O_WORKDIR \$PBS_O_WORKDIR"
56     echo "PBS_O_SHELL \$PBS_O_SHELL"
57     echo ""
58     echo ""
59    
60    
61    
62     START=\`date '+%Y/%m/%d %H:%M'\`
63    
64     finish () {
65     END=\`date '+%Y/%m/%d %H:%M'\`
66     cat << END_MSG | mail -s "ESYS_TESTS $target $RunDate \$1" $MAIL_RECIPIENTS
67     \$2.
68     The tests ran from \$START to \$END.
69     See the log files in $WorkDir/Logs for more information.
70     This mail was sent by $SCRIPT_NAME
71     running as \$USER on \`hostname\`.
72     END_MSG
73     test "x$1" = "FAIL" && exit 1
74     exit 0
75     }
76    
77    
78     cd $WorkDir || finish FAILURE "Could not cd to WorkDir $WorkDir"
79    
80     # Create an empty out_file
81     cat /dev/null > $out_file || finish FAILURE "Could not create out_file $out_file"
82    
83     umask 022
84    
85     test -d sandbox.$RunDate && finish FAILURE "Today's sandbox already exists"
86     mkdir sandbox.$RunDate || finish FAILURE "Could not mkdir sandbox"
87     cd sandbox.$RunDate || finish FAILURE "Could not cd to sandbox"
88    
89     echo "Checking out esys13/trunk"
90     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    
92     # Load modules
93     . /opt/modules/default/init/bash
94     module use /raid2/matt/modules/modulefiles
95     module use /raid2/toolspp4/modulefiles/gcc-3.3.6
96     module use /usr/share/modules/modulefiles
97     module load esys/env # Matt's recommended modules
98     module load doxygen/1.4.6
99     # 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 robwdcock 683 module load boost/1.33.0/python-2.4.1
101 jgs 318
102 svn 344
103 ksteube 739 # Had to request 2 CPUs, but only use one for the tests
104     export OMP_NUM_THREADS=1
105 elspeth 721
106 ksteube 739 # Run the tests
107     echo "Running the tests"
108     cd trunk || finish FAILURE "Could not cd to trunk"
109     scons $target >> $out_file 2>&1 || finish FAILURE "Could not run scons $target"
110 jgs 319
111 ksteube 739 # Delete files older than 21 days
112     find $WorkDir -atime +21 -exec rm -f {} \;
113 elspeth 721
114 ksteube 739 # Clean up the sandbox
115     cd $WorkDir || finish FAILURE "Could not cd to clean up WorkDir $WorkDir"
116     /bin/rm -rf sandbox.$RunDate || finish FAILURE "Could not delete sandbox"
117 svn 320
118 ksteube 739 finish SUCCESS "Successfully ran 'scons $target', see Logs in $WorkDir on ess"
119 jgs 318
120 ksteube 739 EOF
121 jgs 365
122 ksteube 739 # cd to the logs area so the PBS logs are deposited there
123     cd $WorkDir/Logs
124    
125     # Submit the job
126     . /opt/modules/default/init/sh
127     module load pbspro
128     qsub -S /bin/bash $RunDate.pbs.script.sh > /dev/null
129    

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.26