##// END OF EJS Templates
[PATCH] umask for run-tests...
mpm@selenic.com -
r489:a636f7d2 default
parent child Browse files
Show More
@@ -1,98 +1,100 b''
1 #!/bin/bash
1 #!/bin/bash
2
2
3 set -e
3 set -e
4
4
5 export LANG=C
5 export LANG=C
6 export LC_CTYPE="C"
6 export LC_CTYPE="C"
7 export LC_NUMERIC="C"
7 export LC_NUMERIC="C"
8 export LC_TIME="C"
8 export LC_TIME="C"
9 export LC_COLLATE="C"
9 export LC_COLLATE="C"
10 export LC_MONETARY="C"
10 export LC_MONETARY="C"
11 export LC_MESSAGES="C"
11 export LC_MESSAGES="C"
12 export LC_PAPER="C"
12 export LC_PAPER="C"
13 export LC_NAME="C"
13 export LC_NAME="C"
14 export LC_ADDRESS="C"
14 export LC_ADDRESS="C"
15 export LC_TELEPHONE="C"
15 export LC_TELEPHONE="C"
16 export LC_MEASUREMENT="C"
16 export LC_MEASUREMENT="C"
17 export LC_IDENTIFICATION="C"
17 export LC_IDENTIFICATION="C"
18 export LC_ALL=""
18 export LC_ALL=""
19
19
20 umask 022
21
20 tests=0
22 tests=0
21 failed=0
23 failed=0
22 H=$PWD
24 H=$PWD
23
25
24 if [ -d /usr/lib64 ]; then
26 if [ -d /usr/lib64 ]; then
25 lib=lib64
27 lib=lib64
26 else
28 else
27 lib=lib
29 lib=lib
28 fi
30 fi
29
31
30 TESTPATH=$PWD/install/bin
32 TESTPATH=$PWD/install/bin
31 export PATH=$TESTPATH:$PATH
33 export PATH=$TESTPATH:$PATH
32 export PYTHONPATH=$PWD/install/$lib/python
34 export PYTHONPATH=$PWD/install/$lib/python
33
35
34 rm -rf install
36 rm -rf install
35 cd ..
37 cd ..
36 ${PYTHON:-python} setup.py install --home=tests/install > tests/install.err
38 ${PYTHON:-python} setup.py install --home=tests/install > tests/install.err
37 if [ $? != 0 ] ; then
39 if [ $? != 0 ] ; then
38 cat tests/install.err
40 cat tests/install.err
39 fi
41 fi
40 cd $H
42 cd $H
41 rm install.err
43 rm install.err
42
44
43 function run_one
45 function run_one
44 {
46 {
45 rm -f $1.err
47 rm -f $1.err
46 export TZ=GMT
48 export TZ=GMT
47 D=`mktemp -d`
49 D=`mktemp -d`
48 if [ "$D" == "" ] ; then
50 if [ "$D" == "" ] ; then
49 echo mktemp failed!
51 echo mktemp failed!
50 fi
52 fi
51
53
52 cd $D
54 cd $D
53 fail=0
55 fail=0
54
56
55 if ! $H/$1 > .out 2>&1 ; then
57 if ! $H/$1 > .out 2>&1 ; then
56 echo $1 failed with error code $?
58 echo $1 failed with error code $?
57 fail=1
59 fail=1
58 fi
60 fi
59
61
60 if [ -s .out -a ! -r $H/$1.out ] ; then
62 if [ -s .out -a ! -r $H/$1.out ] ; then
61 echo $1 generated unexpected output:
63 echo $1 generated unexpected output:
62 cat .out
64 cat .out
63 cp .out $H/$1.err
65 cp .out $H/$1.err
64 fail=1
66 fail=1
65 elif [ -r $H/$1.out ] && ! diff -u $H/$1.out .out > /dev/null ; then
67 elif [ -r $H/$1.out ] && ! diff -u $H/$1.out .out > /dev/null ; then
66 echo $1 output changed:
68 echo $1 output changed:
67 diff -u $H/$1.out .out && true
69 diff -u $H/$1.out .out && true
68 cp .out $H/$1.err
70 cp .out $H/$1.err
69 fail=1
71 fail=1
70 fi
72 fi
71
73
72 cd $H
74 cd $H
73 rm -r $D
75 rm -r $D
74 return $fail
76 return $fail
75 }
77 }
76
78
77 TESTS=$@
79 TESTS=$@
78 if [ "$TESTS" == "" ] ; then
80 if [ "$TESTS" == "" ] ; then
79 TESTS=`ls test-* | grep -Ev "\.|~"`
81 TESTS=`ls test-* | grep -Ev "\.|~"`
80 fi
82 fi
81
83
82 for f in $TESTS ; do
84 for f in $TESTS ; do
83 echo -n "."
85 echo -n "."
84 if ! run_one $f ; then
86 if ! run_one $f ; then
85 failed=$[$failed + 1]
87 failed=$[$failed + 1]
86 fi
88 fi
87 tests=$[$tests + 1]
89 tests=$[$tests + 1]
88 done
90 done
89
91
90 rm -rf install
92 rm -rf install
91
93
92 echo
94 echo
93 echo Ran $tests tests, $failed failed
95 echo Ran $tests tests, $failed failed
94
96
95 if [ $failed -gt 0 ] ; then
97 if [ $failed -gt 0 ] ; then
96 exit 1
98 exit 1
97 fi
99 fi
98
100
General Comments 0
You need to be logged in to leave comments. Login now