diff options
Diffstat (limited to 'runtests.sh')
-rwxr-xr-x | runtests.sh | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/runtests.sh b/runtests.sh new file mode 100755 index 0000000..5a03b0a --- /dev/null +++ b/runtests.sh @@ -0,0 +1,55 @@ +#!/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;; +*) PYTHON=./python;; +esac + +# Create the output directory if necessary. +mkdir -p OUT + +# Empty the summary files. +>GOOD +>BAD +>SKIPPED + +# Compute the list of tests to run. +case $# in +0) + TESTS=`(cd Lib/test; ls test_*.py | sed 's/\.py//' | grep -v test_socket)` + ;; +*) + TESTS="$@" + ;; +esac + +# Run the tests. +for T in $TESTS +do + echo -n $T + if $PYTHON Lib/test/regrtest.py -uall $T >OUT/$T.out 2>&1 + 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 |