/[escript]/trunk/autotest-scons
ViewVC logotype

Contents of /trunk/autotest-scons

Parent Directory Parent Directory | Revision Log Revision Log


Revision 937 - (show annotations)
Thu Jan 25 03:31:14 2007 UTC (12 years, 7 months ago) by ksteube
File size: 3905 byte(s)
Updated for the new PBS queue names

1 #!/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 # Which tests should we run?
17 target='run_tests' # Default scons target that runs the tests
18 test "x$1" != "x" && target="$1"
19 requested_cpus=2
20 test "x$target" = "xall_tests" && requested_cpus=4
21
22 MAIL_RECIPIENTS="l.gross@uq.edu.au matt@esscc.uq.edu.au robert.woodcock@csiro.au Peter.Hornby@csiro.au k.steube@uq.edu.au"
23 # MAIL_RECIPIENTS="k.steube@uq.edu.au"
24
25 # This time is when the job was submitted. If it waits in the queue it might run on another day.
26 # This date is also used to create the sandbox directory where the tests are run.
27 RunDate=`date '+%Y_%m_%d'` # Time stamp for log file names
28
29 WorkDir=/raid3/ksteube/AutoTests
30 cd $WorkDir
31
32 # Where to put the output of scons run_tests
33 out_file="$WorkDir/Logs/$RunDate.test.output"
34
35 # Save the name of this script
36 SCRIPT_NAME=$0
37
38 # Below here \$variable means I want the variable interpreted when PBS runs the job, not when the job is submitted
39 # Similarly for \`...\`
40
41 # Write the PBS script to run the tests
42 cat << EOF > Logs/$RunDate.pbs.script.sh
43 #!/bin/bash
44
45 #PBS -q q80
46 #PBS -N autotest
47 #PBS -l ncpus=$requested_cpus
48 #PBS -o $RunDate.pbs.stdout
49 #PBS -e $RunDate.pbs.stderr
50 #PBS -W umask=022
51
52 echo "PBS_JOBNAME \$PBS_JOBNAME"
53 echo "PBS_JOBID \$PBS_JOBID"
54 echo "PBS_QUEUE \$PBS_QUEUE"
55 echo "NCPUS \$NCPUS"
56 echo "USER \$USER"
57 echo "PBS_O_HOST \$PBS_O_HOST"
58 echo "PBS_O_WORKDIR \$PBS_O_WORKDIR"
59 echo "PBS_O_SHELL \$PBS_O_SHELL"
60 date
61 echo ""
62 echo ""
63
64
65
66 START=\`date '+%Y/%m/%d %H:%M'\`
67
68 finish () {
69 date
70 # Clean up the sandbox
71 cd $WorkDir
72 /bin/rm -rf sandbox.$RunDate
73 END=\`date '+%Y/%m/%d %H:%M'\`
74 cat << END_MSG | mail -s "ESYS_TESTS $target $RunDate \$1" $MAIL_RECIPIENTS
75 \$2.
76 The tests ran from \$START to \$END on \$NCPUS CPUs
77 See the log files in $WorkDir/Logs/$RunDate*
78 This mail was sent by $SCRIPT_NAME
79 running as \$USER on \`hostname\`.
80 END_MSG
81 test "x\$1" = "FAILURE" && exit 1
82 exit 0
83 }
84
85
86 cd $WorkDir || finish FAILURE "Could not cd to WorkDir $WorkDir"
87
88 # Create an empty out_file
89 cat /dev/null > $out_file || finish FAILURE "Could not create out_file $out_file"
90
91 umask 022
92
93 test -d sandbox.$RunDate && finish FAILURE "Today's sandbox already exists"
94 mkdir sandbox.$RunDate || finish FAILURE "Could not mkdir sandbox"
95 cd sandbox.$RunDate || finish FAILURE "Could not cd to sandbox"
96
97 echo "Checking out esys13/trunk"
98 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"
99
100 # Load modules
101 . /opt/modules/default/init/bash
102 module use /raid2/matt/modules/modulefiles
103 module use /raid2/toolspp4/modulefiles/gcc-3.3.6
104 module use /usr/share/modules/modulefiles
105 module load esys/env # Recommended modules
106 module load doxygen/1.4.6
107 module load boost/1.33.0/python-2.4.1
108
109 # How many threads? One per CPU.
110 export OMP_NUM_THREADS=\$NCPUS
111
112 # Run the tests
113 echo "Running the tests $target"
114 cd trunk || finish FAILURE "Could not cd to trunk"
115 scons -j \$NCPUS $target >> $out_file 2>&1 || finish FAILURE "Could not run scons $target"
116
117 echo "Cleaning up after the tests"
118
119 # Delete files older than 21 days
120 find $WorkDir -atime +21 -exec rm -f {} \;
121
122 finish SUCCESS "Successfully ran 'scons $target' on \`hostname\`"
123
124 EOF
125
126 # cd to the logs area so the PBS logs are deposited there
127 cd $WorkDir/Logs
128
129 # Submit the job
130 . /opt/modules/default/init/sh
131 module load pbspro
132
133 # Submit the job
134 qsub -S /bin/bash $RunDate.pbs.script.sh > /dev/null
135

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.26