Mercurial > hg
view 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 |
line wrap: on
line source
#!/bin/sh -e 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="" export HGEDITOR=true export HGMERGE=true export HGUSER=test umask 022 tests=0 failed=0 H=$PWD if [ -d /usr/lib64 ]; then lib=lib64 else lib=lib fi TESTPATH=$PWD/install/bin export PATH=$TESTPATH:$PATH export PYTHONPATH=$PWD/install/$lib/python rm -rf install cd .. ${PYTHON:-python} setup.py install --home=tests/install > tests/install.err if [ $? != 0 ] ; then cat tests/install.err fi cd $H rm install.err function run_one { rm -f $1.err export TZ=GMT D=`mktemp -d ${TMP-/tmp}/tmp.XXXXXX` if [ "$D" = "" ] ; then echo mktemp failed! fi cd $D fail=0 export HOME=$D if ! $H/$1 > .out 2>&1 ; then echo $1 failed with error code $? fail=1 fi if [ -s .out -a ! -r $H/$1.out ] ; then echo $1 generated unexpected output: cat .out cp .out $H/$1.err fail=1 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 fail=1 fi cd $H rm -r $D return $fail } 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 tests=$[$tests + 1] done rm -rf install echo echo Ran $tests tests, $failed failed if [ $failed -gt 0 ] ; then exit 1 fi