run-tests
102 lines
| 1.6 KiB
| text/plain
|
TextLexer
/ tests / run-tests
Thomas Arendsen Hein
|
r544 | #!/bin/sh -e | ||
mpm@selenic.com
|
r331 | |||
mpm@selenic.com
|
r488 | export LANG=C | ||
export LC_CTYPE="C" | ||||
export LC_NUMERIC="C" | ||||
export LC_TIME="C" | ||||
export LC_COLLATE="C" | ||||
export LC_MONETARY="C" | ||||
export LC_MESSAGES="C" | ||||
export LC_PAPER="C" | ||||
export LC_NAME="C" | ||||
export LC_ADDRESS="C" | ||||
export LC_TELEPHONE="C" | ||||
export LC_MEASUREMENT="C" | ||||
export LC_IDENTIFICATION="C" | ||||
export LC_ALL="" | ||||
mpm@selenic.com
|
r749 | export HGEDITOR=true | ||
export HGMERGE=true | ||||
export HGUSER=test | ||||
mpm@selenic.com
|
r488 | |||
mpm@selenic.com
|
r489 | umask 022 | ||
mpm@selenic.com
|
r331 | tests=0 | ||
failed=0 | ||||
H=$PWD | ||||
mpm@selenic.com
|
r473 | if [ -d /usr/lib64 ]; then | ||
lib=lib64 | ||||
else | ||||
lib=lib | ||||
fi | ||||
mpm@selenic.com
|
r397 | TESTPATH=$PWD/install/bin | ||
export PATH=$TESTPATH:$PATH | ||||
mpm@selenic.com
|
r473 | export PYTHONPATH=$PWD/install/$lib/python | ||
mpm@selenic.com
|
r397 | |||
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
|
r787 | D=`mktemp -d ${TMP-/tmp}/tmp.XXXXXX` | ||
Thomas Arendsen Hein
|
r544 | if [ "$D" = "" ] ; then | ||
mpm@selenic.com
|
r331 | echo mktemp failed! | ||
fi | ||||
cd $D | ||||
fail=0 | ||||
Matt Mackall
|
r608 | export HOME=$D | ||
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=$@ | ||
Thomas Arendsen Hein
|
r544 | if [ "$TESTS" = "" ] ; then | ||
mpm@selenic.com
|
r362 | 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 | ||||