mirror of https://github.com/python/cpython
69 lines
1.3 KiB
Bash
Executable File
69 lines
1.3 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# A script that runs each unit test independently, with output
|
|
# directed to a file in OUT/$T.out. If command line arguments are
|
|
# given, they are tests to run; otherwise every file named
|
|
# Lib/test/test_* is run (via regrtest). A summary of failing,
|
|
# passing and skipped tests is written to stdout and to the files
|
|
# GOOD, BAD and SKIPPED.
|
|
|
|
# Reset PYTHONPATH to avoid alien influences on the tests.
|
|
unset PYTHONPATH
|
|
|
|
# Choose the Python binary.
|
|
case `uname` in
|
|
Darwin) PYTHON=./python.exe;;
|
|
CYGWIN*) PYTHON=./python.exe;;
|
|
*) PYTHON=./python;;
|
|
esac
|
|
|
|
# Create the output directory if necessary.
|
|
mkdir -p OUT
|
|
|
|
# Empty the summary files.
|
|
>GOOD
|
|
>BAD
|
|
>SKIPPED
|
|
|
|
# The -u flag.
|
|
UFLAG=""
|
|
case $1 in
|
|
-u)
|
|
UFLAG="$1 $2"; shift; shift;;
|
|
-u*)
|
|
UFLAG="$1"; shift;;
|
|
esac
|
|
|
|
# Compute the list of tests to run.
|
|
case $# in
|
|
0)
|
|
TESTS=`(cd Lib/test; ls test_*.py | sed 's/\.py//')`
|
|
;;
|
|
*)
|
|
TESTS="$@"
|
|
;;
|
|
esac
|
|
|
|
# Run the tests.
|
|
for T in $TESTS
|
|
do
|
|
echo -n $T
|
|
if case $T in
|
|
*curses*) echo; $PYTHON Lib/test/regrtest.py $UFLAG $T 2>OUT/$T.out;;
|
|
*) $PYTHON Lib/test/regrtest.py $UFLAG $T >OUT/$T.out 2>&1;;
|
|
esac
|
|
then
|
|
if grep -q "1 test skipped:" OUT/$T.out
|
|
then
|
|
echo " SKIPPED"
|
|
echo $T >>SKIPPED
|
|
else
|
|
echo
|
|
echo $T >>GOOD
|
|
fi
|
|
else
|
|
echo " BAD"
|
|
echo $T >>BAD
|
|
fi
|
|
done
|