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

Annotation of /trunk/autotest-scons

Parent Directory Parent Directory | Revision Log Revision Log


Revision 774 - (hide annotations)
Mon Jul 10 02:00:55 2006 UTC (13 years, 2 months ago) by ksteube
File size: 3731 byte(s)
Modified nightly testing:
	Tests run as batch job via cron
	You can choose to run run_tests or all_tests via command-line argument
	They use 2 CPUs for run_tests and 4 CPUs for all_tests
	Log files from tests are saved in /raid3/ksteube/AutoTests/Logs

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

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.26