annotate tests/run-tests @ 812:b65af904d6d7

Reduce the amount of stat traffic generated by a walk. When we switched to the new walk code for commands, we no longer passed a list of specific files to the repo or dirstate walk or changes methods. This meant that we always walked and attempted to match everything, which was not efficient. Now, if we are given any patterns to match, or nothing at all, we still walk everything. But if we are given only file names that contain no glob characters, we only walk those.
author Bryan O'Sullivan <bos@serpentine.com>
date Fri, 29 Jul 2005 12:30:12 -0800
parents f199e1887889
children 445970ccf57a 8f5637f0a0c0 0902ffece4b4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
2
488
77c66c4eec0e [PATCH] Set locale before run-tests does anything
mpm@selenic.com
parents: 473
diff changeset
3 export LANG=C
77c66c4eec0e [PATCH] Set locale before run-tests does anything
mpm@selenic.com
parents: 473
diff changeset
4 export LC_CTYPE="C"
77c66c4eec0e [PATCH] Set locale before run-tests does anything
mpm@selenic.com
parents: 473
diff changeset
5 export LC_NUMERIC="C"
77c66c4eec0e [PATCH] Set locale before run-tests does anything
mpm@selenic.com
parents: 473
diff changeset
6 export LC_TIME="C"
77c66c4eec0e [PATCH] Set locale before run-tests does anything
mpm@selenic.com
parents: 473
diff changeset
7 export LC_COLLATE="C"
77c66c4eec0e [PATCH] Set locale before run-tests does anything
mpm@selenic.com
parents: 473
diff changeset
8 export LC_MONETARY="C"
77c66c4eec0e [PATCH] Set locale before run-tests does anything
mpm@selenic.com
parents: 473
diff changeset
9 export LC_MESSAGES="C"
77c66c4eec0e [PATCH] Set locale before run-tests does anything
mpm@selenic.com
parents: 473
diff changeset
10 export LC_PAPER="C"
77c66c4eec0e [PATCH] Set locale before run-tests does anything
mpm@selenic.com
parents: 473
diff changeset
11 export LC_NAME="C"
77c66c4eec0e [PATCH] Set locale before run-tests does anything
mpm@selenic.com
parents: 473
diff changeset
12 export LC_ADDRESS="C"
77c66c4eec0e [PATCH] Set locale before run-tests does anything
mpm@selenic.com
parents: 473
diff changeset
13 export LC_TELEPHONE="C"
77c66c4eec0e [PATCH] Set locale before run-tests does anything
mpm@selenic.com
parents: 473
diff changeset
14 export LC_MEASUREMENT="C"
77c66c4eec0e [PATCH] Set locale before run-tests does anything
mpm@selenic.com
parents: 473
diff changeset
15 export LC_IDENTIFICATION="C"
77c66c4eec0e [PATCH] Set locale before run-tests does anything
mpm@selenic.com
parents: 473
diff changeset
16 export LC_ALL=""
749
7e4843b7efd2 Update tests to use commit -m and default -u
mpm@selenic.com
parents: 608
diff changeset
17 export HGEDITOR=true
7e4843b7efd2 Update tests to use commit -m and default -u
mpm@selenic.com
parents: 608
diff changeset
18 export HGMERGE=true
7e4843b7efd2 Update tests to use commit -m and default -u
mpm@selenic.com
parents: 608
diff changeset
19 export HGUSER=test
488
77c66c4eec0e [PATCH] Set locale before run-tests does anything
mpm@selenic.com
parents: 473
diff changeset
20
489
a636f7d2cd5b [PATCH] umask for run-tests
mpm@selenic.com
parents: 488
diff changeset
21 umask 022
a636f7d2cd5b [PATCH] umask for run-tests
mpm@selenic.com
parents: 488
diff changeset
22
331
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
23 tests=0
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
24 failed=0
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
25 H=$PWD
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
26
473
5914e27dc717 [PATCH] Get run-tests working on 64-bit machines.
mpm@selenic.com
parents: 429
diff changeset
27 if [ -d /usr/lib64 ]; then
5914e27dc717 [PATCH] Get run-tests working on 64-bit machines.
mpm@selenic.com
parents: 429
diff changeset
28 lib=lib64
5914e27dc717 [PATCH] Get run-tests working on 64-bit machines.
mpm@selenic.com
parents: 429
diff changeset
29 else
5914e27dc717 [PATCH] Get run-tests working on 64-bit machines.
mpm@selenic.com
parents: 429
diff changeset
30 lib=lib
5914e27dc717 [PATCH] Get run-tests working on 64-bit machines.
mpm@selenic.com
parents: 429
diff changeset
31 fi
5914e27dc717 [PATCH] Get run-tests working on 64-bit machines.
mpm@selenic.com
parents: 429
diff changeset
32
397
e5683db23ec4 From: Andrew Thompson <andrewkt@aktzero.com>
mpm@selenic.com
parents: 382
diff changeset
33 TESTPATH=$PWD/install/bin
e5683db23ec4 From: Andrew Thompson <andrewkt@aktzero.com>
mpm@selenic.com
parents: 382
diff changeset
34 export PATH=$TESTPATH:$PATH
473
5914e27dc717 [PATCH] Get run-tests working on 64-bit machines.
mpm@selenic.com
parents: 429
diff changeset
35 export PYTHONPATH=$PWD/install/$lib/python
397
e5683db23ec4 From: Andrew Thompson <andrewkt@aktzero.com>
mpm@selenic.com
parents: 382
diff changeset
36
e5683db23ec4 From: Andrew Thompson <andrewkt@aktzero.com>
mpm@selenic.com
parents: 382
diff changeset
37 rm -rf install
e5683db23ec4 From: Andrew Thompson <andrewkt@aktzero.com>
mpm@selenic.com
parents: 382
diff changeset
38 cd ..
398
7ed217cfae9e Quiet successful test install in run-tests
mpm@selenic.com
parents: 397
diff changeset
39 ${PYTHON:-python} setup.py install --home=tests/install > tests/install.err
7ed217cfae9e Quiet successful test install in run-tests
mpm@selenic.com
parents: 397
diff changeset
40 if [ $? != 0 ] ; then
7ed217cfae9e Quiet successful test install in run-tests
mpm@selenic.com
parents: 397
diff changeset
41 cat tests/install.err
7ed217cfae9e Quiet successful test install in run-tests
mpm@selenic.com
parents: 397
diff changeset
42 fi
397
e5683db23ec4 From: Andrew Thompson <andrewkt@aktzero.com>
mpm@selenic.com
parents: 382
diff changeset
43 cd $H
398
7ed217cfae9e Quiet successful test install in run-tests
mpm@selenic.com
parents: 397
diff changeset
44 rm install.err
397
e5683db23ec4 From: Andrew Thompson <andrewkt@aktzero.com>
mpm@selenic.com
parents: 382
diff changeset
45
362
410373162036 run-tests: run tests given on the command line
mpm@selenic.com
parents: 350
diff changeset
46 function run_one
410373162036 run-tests: run tests given on the command line
mpm@selenic.com
parents: 350
diff changeset
47 {
399
f060d728fe54 Delete error logs one test at a time
mpm@selenic.com
parents: 398
diff changeset
48 rm -f $1.err
382
37249c522770 test suite: fix timezone problems and port collision problem
mpm@selenic.com
parents: 362
diff changeset
49 export TZ=GMT
787
f199e1887889 Drop -t option from mktemp
mpm@selenic.com
parents: 776
diff changeset
50 D=`mktemp -d ${TMP-/tmp}/tmp.XXXXXX`
544
3d4d5f2aba9a Remove bashisms and use /bin/sh instead of /bin/bash.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 495
diff changeset
51 if [ "$D" = "" ] ; then
331
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
52 echo mktemp failed!
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
53 fi
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
54
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
55 cd $D
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
56 fail=0
608
d2994b5298fb Add username/merge/editor to .hgrc
Matt Mackall <mpm@selenic.com>
parents: 547
diff changeset
57 export HOME=$D
362
410373162036 run-tests: run tests given on the command line
mpm@selenic.com
parents: 350
diff changeset
58
399
f060d728fe54 Delete error logs one test at a time
mpm@selenic.com
parents: 398
diff changeset
59 if ! $H/$1 > .out 2>&1 ; then
f060d728fe54 Delete error logs one test at a time
mpm@selenic.com
parents: 398
diff changeset
60 echo $1 failed with error code $?
331
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
61 fail=1
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
62 fi
362
410373162036 run-tests: run tests given on the command line
mpm@selenic.com
parents: 350
diff changeset
63
399
f060d728fe54 Delete error logs one test at a time
mpm@selenic.com
parents: 398
diff changeset
64 if [ -s .out -a ! -r $H/$1.out ] ; then
f060d728fe54 Delete error logs one test at a time
mpm@selenic.com
parents: 398
diff changeset
65 echo $1 generated unexpected output:
331
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
66 cat .out
399
f060d728fe54 Delete error logs one test at a time
mpm@selenic.com
parents: 398
diff changeset
67 cp .out $H/$1.err
331
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
68 fail=1
399
f060d728fe54 Delete error logs one test at a time
mpm@selenic.com
parents: 398
diff changeset
69 elif [ -r $H/$1.out ] && ! diff -u $H/$1.out .out > /dev/null ; then
f060d728fe54 Delete error logs one test at a time
mpm@selenic.com
parents: 398
diff changeset
70 echo $1 output changed:
f060d728fe54 Delete error logs one test at a time
mpm@selenic.com
parents: 398
diff changeset
71 diff -u $H/$1.out .out && true
f060d728fe54 Delete error logs one test at a time
mpm@selenic.com
parents: 398
diff changeset
72 cp .out $H/$1.err
341
c0deea64ce64 run-tests: actually mark changed output as failure
mpm@selenic.com
parents: 331
diff changeset
73 fail=1
331
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
74 fi
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
75
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
76 cd $H
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
77 rm -r $D
362
410373162036 run-tests: run tests given on the command line
mpm@selenic.com
parents: 350
diff changeset
78 return $fail
410373162036 run-tests: run tests given on the command line
mpm@selenic.com
parents: 350
diff changeset
79 }
331
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
80
362
410373162036 run-tests: run tests given on the command line
mpm@selenic.com
parents: 350
diff changeset
81 TESTS=$@
544
3d4d5f2aba9a Remove bashisms and use /bin/sh instead of /bin/bash.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 495
diff changeset
82 if [ "$TESTS" = "" ] ; then
362
410373162036 run-tests: run tests given on the command line
mpm@selenic.com
parents: 350
diff changeset
83 TESTS=`ls test-* | grep -Ev "\.|~"`
410373162036 run-tests: run tests given on the command line
mpm@selenic.com
parents: 350
diff changeset
84 fi
410373162036 run-tests: run tests given on the command line
mpm@selenic.com
parents: 350
diff changeset
85
410373162036 run-tests: run tests given on the command line
mpm@selenic.com
parents: 350
diff changeset
86 for f in $TESTS ; do
410373162036 run-tests: run tests given on the command line
mpm@selenic.com
parents: 350
diff changeset
87 echo -n "."
410373162036 run-tests: run tests given on the command line
mpm@selenic.com
parents: 350
diff changeset
88 if ! run_one $f ; then
410373162036 run-tests: run tests given on the command line
mpm@selenic.com
parents: 350
diff changeset
89 failed=$[$failed + 1]
410373162036 run-tests: run tests given on the command line
mpm@selenic.com
parents: 350
diff changeset
90 fi
331
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
91 tests=$[$tests + 1]
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
92 done
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
93
397
e5683db23ec4 From: Andrew Thompson <andrewkt@aktzero.com>
mpm@selenic.com
parents: 382
diff changeset
94 rm -rf install
e5683db23ec4 From: Andrew Thompson <andrewkt@aktzero.com>
mpm@selenic.com
parents: 382
diff changeset
95
331
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
96 echo
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
97 echo Ran $tests tests, $failed failed
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
98
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
99 if [ $failed -gt 0 ] ; then
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
100 exit 1
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
101 fi
55f63f3b6a54 Add a simple testing framework
mpm@selenic.com
parents:
diff changeset
102