run-tests
77 lines
| 1.2 KiB
| text/plain
|
TextLexer
/ tests / run-tests
mpm@selenic.com
|
r331 | #!/bin/bash | ||
set -e | ||||
tests=0 | ||||
failed=0 | ||||
H=$PWD | ||||
mpm@selenic.com
|
r397 | TESTPATH=$PWD/install/bin | ||
export PATH=$TESTPATH:$PATH | ||||
export PYTHONPATH=$PWD/install/lib/python | ||||
rm -rf install | ||||
cd .. | ||||
mpm@selenic.com
|
r398 | ${PYTHON:-python} setup.py install --home=tests/install > tests/install.err | ||
if [ $? != 0 ] ; then | ||||
cat tests/install.err | ||||
fi | ||||
mpm@selenic.com
|
r397 | cd $H | ||
mpm@selenic.com
|
r398 | rm install.err | ||
mpm@selenic.com
|
r397 | |||
mpm@selenic.com
|
r362 | function run_one | ||
{ | ||||
mpm@selenic.com
|
r399 | rm -f $1.err | ||
mpm@selenic.com
|
r382 | export TZ=GMT | ||
mpm@selenic.com
|
r331 | D=`mktemp -d` | ||
if [ "$D" == "" ] ; then | ||||
echo mktemp failed! | ||||
fi | ||||
cd $D | ||||
fail=0 | ||||
mpm@selenic.com
|
r362 | |||
mpm@selenic.com
|
r399 | if ! $H/$1 > .out 2>&1 ; then | ||
echo $1 failed with error code $? | ||||
mpm@selenic.com
|
r331 | fail=1 | ||
fi | ||||
mpm@selenic.com
|
r362 | |||
mpm@selenic.com
|
r399 | if [ -s .out -a ! -r $H/$1.out ] ; then | ||
echo $1 generated unexpected output: | ||||
mpm@selenic.com
|
r331 | cat .out | ||
mpm@selenic.com
|
r399 | cp .out $H/$1.err | ||
mpm@selenic.com
|
r331 | fail=1 | ||
mpm@selenic.com
|
r399 | elif [ -r $H/$1.out ] && ! diff -u $H/$1.out .out > /dev/null ; then | ||
echo $1 output changed: | ||||
diff -u $H/$1.out .out && true | ||||
cp .out $H/$1.err | ||||
mpm@selenic.com
|
r341 | fail=1 | ||
mpm@selenic.com
|
r331 | fi | ||
cd $H | ||||
rm -r $D | ||||
mpm@selenic.com
|
r362 | return $fail | ||
} | ||||
mpm@selenic.com
|
r331 | |||
mpm@selenic.com
|
r362 | TESTS=$@ | ||
if [ "$TESTS" == "" ] ; then | ||||
TESTS=`ls test-* | grep -Ev "\.|~"` | ||||
fi | ||||
for f in $TESTS ; do | ||||
echo -n "." | ||||
if ! run_one $f ; then | ||||
failed=$[$failed + 1] | ||||
fi | ||||
mpm@selenic.com
|
r331 | tests=$[$tests + 1] | ||
done | ||||
mpm@selenic.com
|
r397 | rm -rf install | ||
mpm@selenic.com
|
r331 | echo | ||
echo Ran $tests tests, $failed failed | ||||
if [ $failed -gt 0 ] ; then | ||||
exit 1 | ||||
fi | ||||