1 |
ksteube |
1707 |
#!/bin/bash |
2 |
ksteube |
774 |
|
3 |
ksteube |
1707 |
# The test suite no longer runs as a PBS job (can't compile jobs on a |
4 |
|
|
# compute node because the compilers are on local disk of the login node) |
5 |
jgs |
318 |
|
6 |
ksteube |
1707 |
MAIL_RECIPIENTS="l.gross@uq.edu.au Peter.Hornby@csiro.au k.steube@uq.edu.au artak@uq.edu.au c.altinay@uq.edu.au j.fenwick1@uq.edu.au" |
7 |
ksteube |
937 |
# MAIL_RECIPIENTS="k.steube@uq.edu.au" |
8 |
jgs |
321 |
|
9 |
ksteube |
1707 |
NCPUS=4 |
10 |
|
|
TEST_DIR=/data1/ksteube/EscriptDev/AutoTests |
11 |
|
|
TEST_NAME='all_tests' |
12 |
|
|
|
13 |
ksteube |
774 |
RunDate=`date '+%Y_%m_%d'` # Time stamp for log file names |
14 |
elspeth |
721 |
|
15 |
ksteube |
1707 |
START=`date '+%Y/%m/%d %H:%M'` |
16 |
svn |
346 |
|
17 |
ksteube |
774 |
SCRIPT_NAME=$0 |
18 |
jgs |
321 |
|
19 |
ksteube |
774 |
finish () { |
20 |
ksteube |
979 |
# state will be 'FAILURE' or 'SUCCESS' |
21 |
ksteube |
1707 |
state="$1" |
22 |
|
|
message="$2" |
23 |
ksteube |
774 |
date |
24 |
|
|
# Clean up the sandbox |
25 |
ksteube |
1707 |
cd $TEST_DIR |
26 |
ksteube |
774 |
/bin/rm -rf sandbox.$RunDate |
27 |
ksteube |
1707 |
END=`date '+%Y/%m/%d %H:%M'` |
28 |
|
|
cat << END_MSG | mail -s "ESYS_TESTS $TEST_NAME $RunDate $state" $MAIL_RECIPIENTS |
29 |
|
|
$message. |
30 |
|
|
The tests ran from $START to $END on $NCPUS cores |
31 |
|
|
See the log files in $TEST_DIR/Logs/$RunDate* |
32 |
ksteube |
774 |
This mail was sent by $SCRIPT_NAME |
33 |
ksteube |
1707 |
running as $USER on `hostname`. |
34 |
ksteube |
774 |
END_MSG |
35 |
ksteube |
1707 |
# There are three ways to see errors: |
36 |
|
|
# egrep 'FAIL|Error:|error set =' $TEST_DIR/Logs/$RunDate.test.output |
37 |
|
|
if [ "x$state" = "xFAILURE" ]; then |
38 |
ksteube |
979 |
touch Logs/$RunDate.FAILURE |
39 |
|
|
exit 1 |
40 |
|
|
fi |
41 |
ksteube |
774 |
exit 0 |
42 |
|
|
} |
43 |
|
|
|
44 |
|
|
|
45 |
ksteube |
1707 |
cat /dev/null > $TEST_DIR/Logs/$RunDate.test.output \ |
46 |
|
|
|| finish FAILURE "Could not create out_file $TEST_DIR/Logs/$RunDate.test.output" |
47 |
ksteube |
1027 |
|
48 |
ksteube |
1707 |
# Save output in Logs/date.test.output |
49 |
|
|
exec 1> $TEST_DIR/Logs/$RunDate.test.output 2>&1 |
50 |
ksteube |
1027 |
|
51 |
ksteube |
774 |
|
52 |
ksteube |
1707 |
cd $TEST_DIR || finish FAILURE "Could not cd to WorkDir $TEST_DIR" |
53 |
ksteube |
774 |
|
54 |
ksteube |
1707 |
test -d Logs || mkdir Logs |
55 |
|
|
|
56 |
ksteube |
774 |
umask 022 |
57 |
|
|
|
58 |
|
|
test -d sandbox.$RunDate && finish FAILURE "Today's sandbox already exists" |
59 |
|
|
mkdir sandbox.$RunDate || finish FAILURE "Could not mkdir sandbox" |
60 |
|
|
cd sandbox.$RunDate || finish FAILURE "Could not cd to sandbox" |
61 |
|
|
|
62 |
ksteube |
1707 |
# Load modules |
63 |
|
|
. /usr/share/modules/init/sh |
64 |
|
|
module load escript/current |
65 |
|
|
module load subversion-1.3.1 |
66 |
|
|
module load pbs |
67 |
|
|
|
68 |
ksteube |
774 |
echo "Checking out esys13/trunk" |
69 |
ksteube |
1707 |
svn checkout svn+ssh://shake200.esscc.uq.edu.au/home/www_svn/repos/esys13/trunk >> $TEST_DIR/Logs/$RunDate.test.output 2>&1 \ |
70 |
|
|
|| finish FAILURE "Could not check out esys13/trunk" |
71 |
ksteube |
774 |
|
72 |
ksteube |
1707 |
export LD_LIBRARY_PATH="$TEST_DIR/lib:$LD_LIBRARY_PATH" |
73 |
|
|
export PYTHONPATH="$TEST_DIR:$PYTHONPATH" |
74 |
jgs |
318 |
|
75 |
ksteube |
774 |
# How many threads? One per CPU. |
76 |
ksteube |
1707 |
export OMP_NUM_THREADS=1 |
77 |
svn |
344 |
|
78 |
ksteube |
774 |
# Run the tests |
79 |
ksteube |
1707 |
echo "Running the tests $TEST_NAME" |
80 |
ksteube |
774 |
cd trunk || finish FAILURE "Could not cd to trunk" |
81 |
ksteube |
1707 |
scons dodebug=no useMPI=no -j $NCPUS $TEST_NAME >> $TEST_DIR/Logs/$RunDate.test.output 2>&1 \ |
82 |
|
|
|| finish FAILURE "Could not run scons $TEST_NAME" |
83 |
elspeth |
721 |
|
84 |
ksteube |
774 |
echo "Cleaning up after the tests" |
85 |
jgs |
319 |
|
86 |
ksteube |
979 |
# Delete files older than 60 days |
87 |
ksteube |
1707 |
find $TEST_DIR -ctime +60 -exec rm -f {} \; |
88 |
elspeth |
721 |
|
89 |
ksteube |
1707 |
finish SUCCESS "Successfully ran 'scons $TEST_NAME' on `hostname`" |
90 |
svn |
320 |
|