Move commands.forget over to using new walk code.
With no names, it now recursively forgets everything, as is the default
behaviour of other commands. And prints the names of all files it
hasn't specifically been told to forget.
#!/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