mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 07:17:55 +03:00
Delete the shell version of run-tests
Use the python version instead
This commit is contained in:
parent
df126198c9
commit
fb04fe7b4b
@ -2,7 +2,7 @@ include hg
|
||||
recursive-include mercurial *.py
|
||||
include hgweb.cgi hgwebdir.cgi
|
||||
include hgeditor rewrite-log
|
||||
include tests/README tests/run-tests tests/md5sum.py tests/test-*[a-z0-9] tests/*.out
|
||||
include tests/README tests/run-tests.py tests/md5sum.py tests/test-*[a-z0-9] tests/*.out
|
||||
prune tests/*.err
|
||||
include *.txt
|
||||
include templates/map templates/map-*[a-z0-9]
|
||||
|
4
Makefile
4
Makefile
@ -16,10 +16,10 @@ dist: tests doc
|
||||
TAR_OPTIONS="--owner=root --group=root --mode=u+w,go-w,a+rX-s" $(PYTHON) setup.py sdist --force-manifest
|
||||
|
||||
tests:
|
||||
cd tests && ./run-tests
|
||||
cd tests && $(PYTHON) run-tests.py
|
||||
|
||||
test-%:
|
||||
cd tests && ./run-tests $@
|
||||
cd tests && $(PYTHON) run-tests.py $@
|
||||
|
||||
doc:
|
||||
$(MAKE) -C doc
|
||||
|
@ -3,7 +3,7 @@ A simple testing framework
|
||||
To run the tests, do:
|
||||
|
||||
cd tests/
|
||||
./run-tests
|
||||
python run-tests.py
|
||||
|
||||
This finds all scripts in the test directory named test-* and executes
|
||||
them. The scripts can be either shell scripts or Python. Each test is
|
||||
|
197
tests/run-tests
197
tests/run-tests
@ -1,197 +0,0 @@
|
||||
#!/bin/sh -e
|
||||
#
|
||||
# environment variables:
|
||||
#
|
||||
# TEST_COVERAGE - set non-empty if you want to print test coverage report
|
||||
# COVERAGE_STDLIB - set non-empty to report coverage of standard library
|
||||
|
||||
LANG="C"; export LANG
|
||||
LC_CTYPE="C"; export LC_CTYPE
|
||||
LC_NUMERIC="C"; export LC_NUMERIC
|
||||
LC_TIME="C"; export LC_TIME
|
||||
LC_COLLATE="C"; export LC_COLLATE
|
||||
LC_MONETARY="C"; export LC_MONETARY
|
||||
LC_MESSAGES="C"; export LC_MESSAGES
|
||||
LC_PAPER="C"; export LC_PAPER
|
||||
LC_NAME="C"; export LC_NAME
|
||||
LC_ADDRESS="C"; export LC_ADDRESS
|
||||
LC_TELEPHONE="C"; export LC_TELEPHONE
|
||||
LC_MEASUREMENT="C"; export LC_MEASUREMENT
|
||||
LC_IDENTIFICATION="C"; export LC_IDENTIFICATION
|
||||
LC_ALL=""; export LC_ALL
|
||||
TZ=GMT; export TZ
|
||||
HGEDITOR=true; export HGEDITOR
|
||||
HGMERGE=true; export HGMERGE
|
||||
HGUSER="test"; export HGUSER
|
||||
HGRCPATH=""; export HGRCPATH
|
||||
OS=`uname`
|
||||
|
||||
case "$OS" in
|
||||
HP-UX|SunOS)
|
||||
DIFFOPTS=
|
||||
;;
|
||||
*)
|
||||
DIFFOPTS=-u
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ `echo -n HG` = "-n HG" ]
|
||||
then
|
||||
ECHO_N=echo
|
||||
NNL="\c"
|
||||
else
|
||||
ECHO_N="echo -n"
|
||||
NNL=
|
||||
fi
|
||||
|
||||
umask 022
|
||||
|
||||
tests=0
|
||||
failed=0
|
||||
|
||||
HGTMP=""
|
||||
cleanup_exit() {
|
||||
rm -rf "$HGTMP"
|
||||
}
|
||||
|
||||
# Remove temporary files even if we get interrupted
|
||||
trap "cleanup_exit" 0 # normal exit
|
||||
trap "exit 255" 1 2 3 6 15 # HUP INT QUIT ABRT TERM
|
||||
|
||||
HGTMP="${TMPDIR-/tmp}/hgtests.$RANDOM.$RANDOM.$RANDOM.$$"
|
||||
(umask 077 && mkdir "$HGTMP") || {
|
||||
echo "Could not create temporary directory! Exiting." 1>&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
TESTDIR="`pwd`"
|
||||
export TESTDIR
|
||||
INST="$HGTMP/install"
|
||||
PYTHONDIR="$INST/lib/python"
|
||||
cd ..
|
||||
if ${PYTHON-python} setup.py clean --all install --force --home="$INST" \
|
||||
--install-lib="$PYTHONDIR" > tests/install.err 2>&1
|
||||
then
|
||||
rm tests/install.err
|
||||
else
|
||||
cat tests/install.err
|
||||
exit 1
|
||||
fi
|
||||
cd "$TESTDIR"
|
||||
|
||||
BINDIR="$INST/bin"; export BINDIR
|
||||
if [ -n "$TEST_COVERAGE" ]; then
|
||||
COVERAGE_FILE="$TESTDIR/.coverage"; export COVERAGE_FILE
|
||||
rm -f "$COVERAGE_FILE"
|
||||
mv "$BINDIR/hg" "$BINDIR/hg.py"
|
||||
{
|
||||
echo '#!/bin/sh'
|
||||
echo "exec \"${PYTHON-python}\" \"$TESTDIR/coverage.py\"" \
|
||||
"-x \"$BINDIR/hg.py\" \"\$@\""
|
||||
} > "$BINDIR/hg"
|
||||
chmod 700 "$BINDIR/hg"
|
||||
fi
|
||||
|
||||
PATH="$BINDIR:$PATH"; export PATH
|
||||
if [ -n "$PYTHON" ]; then
|
||||
{
|
||||
echo "#!/bin/sh"
|
||||
echo "exec \"$PYTHON"'" "$@"'
|
||||
} > "$BINDIR/python"
|
||||
chmod 755 "$BINDIR/python"
|
||||
fi
|
||||
|
||||
PYTHONPATH="$PYTHONDIR"; export PYTHONPATH
|
||||
|
||||
run_one() {
|
||||
rm -f "$1.err"
|
||||
|
||||
mkdir "$HGTMP/$1"
|
||||
cd "$HGTMP/$1"
|
||||
fail=0
|
||||
HOME="$HGTMP/$1"; export HOME
|
||||
OUT="$HGTMP/$1.out"
|
||||
OUTOK="$TESTDIR/$1.out"
|
||||
ERR="$TESTDIR/$1.err"
|
||||
|
||||
if "$TESTDIR/$1" > "$OUT" 2>&1; then
|
||||
: no error
|
||||
else
|
||||
echo "$1 failed with error code $?"
|
||||
fail=1
|
||||
fi
|
||||
|
||||
if [ -s "$OUT" -a ! -s "$OUTOK" ] ; then
|
||||
cp "$OUT" "$ERR"
|
||||
echo
|
||||
echo "$1 generated unexpected output:"
|
||||
cat "$ERR"
|
||||
fail=1
|
||||
elif [ -r "$OUTOK" ]; then
|
||||
if diff $DIFFOPTS "$OUTOK" "$OUT" > /dev/null; then
|
||||
: no differences
|
||||
else
|
||||
cp "$OUT" "$ERR"
|
||||
echo
|
||||
echo "$1 output changed:"
|
||||
diff $DIFFOPTS "$OUTOK" "$ERR" || true
|
||||
fail=1
|
||||
fi
|
||||
fi
|
||||
|
||||
cd "$TESTDIR"
|
||||
rm -f "$HGTMP/$1.out"
|
||||
rm -rf "$HGTMP/$1"
|
||||
return $fail
|
||||
}
|
||||
|
||||
# list of prerequisite programs
|
||||
# stuff from coreutils (cat, rm, etc) are not tested
|
||||
prereqs="python merge diff grep unzip gunzip bunzip2 sed"
|
||||
missing=''
|
||||
for pre in $prereqs ; do
|
||||
if type $pre > /dev/null 2>&1 ; then
|
||||
: prereq exists
|
||||
else
|
||||
missing="$pre $missing"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$missing" != '' ] ; then
|
||||
echo "ERROR: the test suite needs some programs to execute correctly."
|
||||
echo "The following programs are missing: "
|
||||
for pre in $missing; do
|
||||
echo " $pre"
|
||||
done
|
||||
exit 1
|
||||
fi
|
||||
|
||||
TESTS="$*"
|
||||
if [ -z "$TESTS" ] ; then
|
||||
TESTS=`ls test-* | grep -v "[.~]"`
|
||||
fi
|
||||
|
||||
for f in $TESTS ; do
|
||||
$ECHO_N ".${NNL}"
|
||||
run_one $f || failed=`expr $failed + 1`
|
||||
tests=`expr $tests + 1`
|
||||
done
|
||||
|
||||
echo
|
||||
echo "Ran $tests tests, $failed failed."
|
||||
|
||||
if [ -n "$TEST_COVERAGE" ]; then
|
||||
unset PYTHONPATH
|
||||
$ECHO_N "$BINDIR,$TESTDIR,$HGTMP/test-," > "$HGTMP/omit"
|
||||
if [ -z "$COVERAGE_STDLIB" ]; then
|
||||
"${PYTHON-python}" -c 'import sys; print ",".join(sys.path)' \
|
||||
>> "$HGTMP/omit"
|
||||
fi
|
||||
cd "$PYTHONDIR"
|
||||
"${PYTHON-python}" "$TESTDIR/coverage.py" -r --omit="`cat \"$HGTMP/omit\"`"
|
||||
fi
|
||||
|
||||
if [ $failed -gt 0 ] ; then
|
||||
exit 1
|
||||
fi
|
||||
exit 0
|
Loading…
Reference in New Issue
Block a user