Mercurial > hg > mercurial-crew-with-dirclash
annotate tests/run-tests @ 958:d845a1f174bb
Make mercurial.el load with GNU emacs
author | mpm@selenic.com |
---|---|
date | Fri, 19 Aug 2005 18:47:05 -0800 |
parents | 5a034646e472 |
children | 8ab1c07d4e0b |
rev | line source |
---|---|
544
3d4d5f2aba9a
Remove bashisms and use /bin/sh instead of /bin/bash.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
495
diff
changeset
|
1 #!/bin/sh -e |
331 | 2 |
798
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
3 LANG="C"; export LANG |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
4 LC_CTYPE="C"; export LC_CTYPE |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
5 LC_NUMERIC="C"; export LC_NUMERIC |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
6 LC_TIME="C"; export LC_TIME |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
7 LC_COLLATE="C"; export LC_COLLATE |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
8 LC_MONETARY="C"; export LC_MONETARY |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
9 LC_MESSAGES="C"; export LC_MESSAGES |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
10 LC_PAPER="C"; export LC_PAPER |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
11 LC_NAME="C"; export LC_NAME |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
12 LC_ADDRESS="C"; export LC_ADDRESS |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
13 LC_TELEPHONE="C"; export LC_TELEPHONE |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
14 LC_MEASUREMENT="C"; export LC_MEASUREMENT |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
15 LC_IDENTIFICATION="C"; export LC_IDENTIFICATION |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
16 LC_ALL=""; export LC_ALL |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
17 TZ=GMT; export TZ |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
18 HGEDITOR=true; export HGEDITOR |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
19 HGMERGE=true; export HGMERGE |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
20 HGUSER="test"; export HGUSER |
488
77c66c4eec0e
[PATCH] Set locale before run-tests does anything
mpm@selenic.com
parents:
473
diff
changeset
|
21 |
489 | 22 umask 022 |
23 | |
331 | 24 tests=0 |
25 failed=0 | |
798
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
26 |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
27 HGTMP="" |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
28 cleanup_exit() { |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
29 rm -rf "$HGTMP" |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
30 } |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
31 |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
32 # Remove temporary files even if we get interrupted |
835
9de3535caae8
Cleaned up trap handling in run-tests, too.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
833
diff
changeset
|
33 trap "cleanup_exit" 0 # normal exit |
9de3535caae8
Cleaned up trap handling in run-tests, too.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
833
diff
changeset
|
34 trap "exit 255" 1 2 3 6 15 # HUP INT QUIT ABRT TERM |
798
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
35 |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
36 HGTMP="${TMPDIR-/tmp}/hgtests.$RANDOM.$RANDOM.$RANDOM.$$" |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
37 (umask 077 && mkdir "$HGTMP") || { |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
38 echo "Could not create temporary directory! Exiting." 1>&2 |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
39 exit 1 |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
40 } |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
41 |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
42 TESTDIR="$PWD" |
331 | 43 |
473
5914e27dc717
[PATCH] Get run-tests working on 64-bit machines.
mpm@selenic.com
parents:
429
diff
changeset
|
44 if [ -d /usr/lib64 ]; then |
5914e27dc717
[PATCH] Get run-tests working on 64-bit machines.
mpm@selenic.com
parents:
429
diff
changeset
|
45 lib=lib64 |
5914e27dc717
[PATCH] Get run-tests working on 64-bit machines.
mpm@selenic.com
parents:
429
diff
changeset
|
46 else |
5914e27dc717
[PATCH] Get run-tests working on 64-bit machines.
mpm@selenic.com
parents:
429
diff
changeset
|
47 lib=lib |
5914e27dc717
[PATCH] Get run-tests working on 64-bit machines.
mpm@selenic.com
parents:
429
diff
changeset
|
48 fi |
5914e27dc717
[PATCH] Get run-tests working on 64-bit machines.
mpm@selenic.com
parents:
429
diff
changeset
|
49 |
798
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
50 INST="$HGTMP/install" |
397
e5683db23ec4
From: Andrew Thompson <andrewkt@aktzero.com>
mpm@selenic.com
parents:
382
diff
changeset
|
51 cd .. |
804
19388dcbac49
Incorporated most of Aron Griffis suggestions for sh compatibility.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
803
diff
changeset
|
52 if ${PYTHON-python} setup.py install --home="$INST" > tests/install.err 2>&1 |
798
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
53 then |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
54 rm tests/install.err |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
55 else |
398 | 56 cat tests/install.err |
835
9de3535caae8
Cleaned up trap handling in run-tests, too.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
833
diff
changeset
|
57 exit 1 |
398 | 58 fi |
798
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
59 cd "$TESTDIR" |
397
e5683db23ec4
From: Andrew Thompson <andrewkt@aktzero.com>
mpm@selenic.com
parents:
382
diff
changeset
|
60 |
798
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
61 PATH="$INST/bin:$PATH"; export PATH |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
62 PYTHONPATH="$INST/$lib/python"; export PYTHONPATH |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
63 |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
64 |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
65 run_one() { |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
66 rm -f "$1.err" |
331 | 67 |
798
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
68 mkdir "$HGTMP/$1" |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
69 cd "$HGTMP/$1" |
331 | 70 fail=0 |
798
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
71 HOME="$HGTMP/$1"; export HOME |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
72 OUT="$HGTMP/$1.out" |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
73 OUTOK="$TESTDIR/$1.out" |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
74 ERR="$TESTDIR/$1.err" |
362
410373162036
run-tests: run tests given on the command line
mpm@selenic.com
parents:
350
diff
changeset
|
75 |
798
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
76 if "$TESTDIR/$1" > "$OUT" 2>&1; then |
803
3d47e7fc33a3
Use tabs instead of spaces where apropriate.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
802
diff
changeset
|
77 : no error |
798
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
78 else |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
79 echo "$1 failed with error code $?" |
331 | 80 fail=1 |
81 fi | |
362
410373162036
run-tests: run tests given on the command line
mpm@selenic.com
parents:
350
diff
changeset
|
82 |
798
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
83 if [ -s "$OUT" -a ! -s "$OUTOK" ] ; then |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
84 cp "$OUT" "$ERR" |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
85 echo |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
86 echo "$1 generated unexpected output:" |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
87 cat "$ERR" |
331 | 88 fail=1 |
798
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
89 elif [ -r "$OUTOK" ]; then |
803
3d47e7fc33a3
Use tabs instead of spaces where apropriate.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
802
diff
changeset
|
90 if diff -u "$OUTOK" "$OUT" > /dev/null; then |
3d47e7fc33a3
Use tabs instead of spaces where apropriate.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
802
diff
changeset
|
91 : no differences |
3d47e7fc33a3
Use tabs instead of spaces where apropriate.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
802
diff
changeset
|
92 else |
833
ad8ff3534fde
Removed special FIXME handling in run-tests, added bug info to .out files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
814
diff
changeset
|
93 cp "$OUT" "$ERR" |
ad8ff3534fde
Removed special FIXME handling in run-tests, added bug info to .out files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
814
diff
changeset
|
94 echo |
ad8ff3534fde
Removed special FIXME handling in run-tests, added bug info to .out files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
814
diff
changeset
|
95 echo "$1 output changed:" |
ad8ff3534fde
Removed special FIXME handling in run-tests, added bug info to .out files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
814
diff
changeset
|
96 diff -u "$OUTOK" "$ERR" || true |
ad8ff3534fde
Removed special FIXME handling in run-tests, added bug info to .out files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
814
diff
changeset
|
97 fail=1 |
803
3d47e7fc33a3
Use tabs instead of spaces where apropriate.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
802
diff
changeset
|
98 fi |
331 | 99 fi |
100 | |
798
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
101 cd "$TESTDIR" |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
102 rm -f "$HGTMP/$1.out" |
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
103 rm -rf "$HGTMP/$1" |
362
410373162036
run-tests: run tests given on the command line
mpm@selenic.com
parents:
350
diff
changeset
|
104 return $fail |
410373162036
run-tests: run tests given on the command line
mpm@selenic.com
parents:
350
diff
changeset
|
105 } |
331 | 106 |
804
19388dcbac49
Incorporated most of Aron Griffis suggestions for sh compatibility.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
803
diff
changeset
|
107 TESTS="$*" |
798
c28f9feb7c2e
Make tests work on Solaris:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
793
diff
changeset
|
108 if [ -z "$TESTS" ] ; then |
804
19388dcbac49
Incorporated most of Aron Griffis suggestions for sh compatibility.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
803
diff
changeset
|
109 TESTS=`ls test-* | grep -v "[.~]"` |
362
410373162036
run-tests: run tests given on the command line
mpm@selenic.com
parents:
350
diff
changeset
|
110 fi |
410373162036
run-tests: run tests given on the command line
mpm@selenic.com
parents:
350
diff
changeset
|
111 |
410373162036
run-tests: run tests given on the command line
mpm@selenic.com
parents:
350
diff
changeset
|
112 for f in $TESTS ; do |
410373162036
run-tests: run tests given on the command line
mpm@selenic.com
parents:
350
diff
changeset
|
113 echo -n "." |
804
19388dcbac49
Incorporated most of Aron Griffis suggestions for sh compatibility.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
803
diff
changeset
|
114 run_one $f || failed=`expr $failed + 1` |
19388dcbac49
Incorporated most of Aron Griffis suggestions for sh compatibility.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
803
diff
changeset
|
115 tests=`expr $tests + 1` |
331 | 116 done |
117 | |
118 echo | |
804
19388dcbac49
Incorporated most of Aron Griffis suggestions for sh compatibility.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
803
diff
changeset
|
119 echo "Ran $tests tests, $failed failed." |
331 | 120 |
121 if [ $failed -gt 0 ] ; then | |
835
9de3535caae8
Cleaned up trap handling in run-tests, too.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
833
diff
changeset
|
122 exit 1 |
331 | 123 fi |
835
9de3535caae8
Cleaned up trap handling in run-tests, too.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
833
diff
changeset
|
124 exit 0 |