summaryrefslogtreecommitdiffstats
path: root/runtests.sh
diff options
context:
space:
mode:
Diffstat (limited to 'runtests.sh')
-rwxr-xr-xruntests.sh55
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