Staging
v0.5.1
v0.5.1
https://github.com/python/cpython
Revision 709b4c35cc6e6f5db58d9e440b5ca732b7fdb6a2 authored by R. David Murray on 11 February 2010, 00:25:17 UTC, committed by R. David Murray on 11 February 2010, 00:25:17 UTC
svn+ssh://pythondev@svn.python.org/python/branches/py3k ................ r78139 | r.david.murray | 2010-02-10 19:15:05 -0500 (Wed, 10 Feb 2010) | 15 lines Merged revisions 78137 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r78137 | r.david.murray | 2010-02-10 17:42:04 -0500 (Wed, 10 Feb 2010) | 8 lines Issue 7835: Shelve's __del__ method calls its close method, and its close method refers to an identifier in the global module namespace. This means that when __del__ is called during interpreter shutdown (if, for example, the calling program still has a pointer to the shelf), sometimes that global identifier would wind up being None, causing mysterious 'ignored' exceptions. This patch checks for the possible None value first before using the global, thus avoiding the error messages. ........ ................
1 parent 5431928
Tip revision: 709b4c35cc6e6f5db58d9e440b5ca732b7fdb6a2 authored by R. David Murray on 11 February 2010, 00:25:17 UTC
Merged revisions 78139 via svnmerge from
Merged revisions 78139 via svnmerge from
Tip revision: 709b4c3
runtests.sh
#!/bin/bash
HELP="Usage: ./runtests.py [-h] [-x] [flags] [tests]
Runs each unit test independently, with output directed to a file in
OUT/<test>.out. If no tests are given, all tests are run; otherwise,
only the specified tests are run, unless -x is also given, in which
case all tests *except* those given are run.
Standard output shows the name of the tests run, with 'BAD' or
'SKIPPED' added if the test didn't produce a positive result. Also,
three files are created, named 'BAD', 'GOOD' and 'SKIPPED', to which
are written the names of the tests categorized by result.
Flags (arguments starting with '-') are passed transparently to
regrtest.py, except for -x, which is processed here."
# Choose the Python binary.
case `uname` in
Darwin) PYTHON=./python.exe;;
CYGWIN*) PYTHON=./python.exe;;
*) PYTHON=./python;;
esac
PYTHON="$PYTHON -bb"
# Unset PYTHONPATH, just to be sure.
unset PYTHONPATH
# Create the output directory if necessary.
mkdir -p OUT
# Empty the summary files.
>GOOD
>BAD
>SKIPPED
# Process flags (transparently pass these on to regrtest.py)
FLAGS=""
EXCEPT=""
while :
do
case $1 in
-h|--h|-help|--help) echo "$HELP"; exit;;
--) FLAGS="$FLAGS $1"; shift; break;;
-x) EXCEPT="$1"; shift;;
-*) FLAGS="$FLAGS $1"; shift;;
*) break;;
esac
done
# Compute the list of tests to run.
case "$#$EXCEPT" in
0)
TESTS=`(cd Lib/test; ls test_*.py | sed 's/\.py//')`
;;
*-x)
PAT="^(`echo $@ | sed 's/\.py//' | sed 's/ /|/'`)$"
TESTS=`(cd Lib/test; ls test_*.py | sed 's/\.py//' | egrep -v "$PAT")`
;;
*)
TESTS="$@"
;;
esac
# Run the tests.
for T in $TESTS
do
echo -n $T
if case $T in
*curses*)
echo
$PYTHON -E Lib/test/regrtest.py $FLAGS $T 2>OUT/$T.out
;;
*) $PYTHON -E Lib/test/regrtest.py $FLAGS $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
# Summarize results
wc -l BAD GOOD SKIPPED
Computing file changes ...