From a873b03ebb24076b3664ba694eeed4ab07d176d9 Mon Sep 17 00:00:00 2001 From: Barry Warsaw Date: Thu, 3 Aug 2000 15:50:37 +0000 Subject: [PATCH] Added a -l/--leakdebug option which turns on DEBUG_LEAK if the gc module is importable. --- Lib/test/regrtest.py | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py index e96ba818fd..69bbf14b1e 100755 --- a/Lib/test/regrtest.py +++ b/Lib/test/regrtest.py @@ -8,12 +8,13 @@ additional facilities. Command line options: --v: verbose -- run tests in verbose mode with output to stdout --q: quiet -- don't print anything except if a test fails --g: generate -- write the output file for a test instead of comparing it --x: exclude -- arguments are tests to *exclude* --s: single -- run only a single test (see below) --r: random -- randomize test execution order +-v: verbose -- run tests in verbose mode with output to stdout +-q: quiet -- don't print anything except if a test fails +-g: generate -- write the output file for a test instead of comparing it +-x: exclude -- arguments are tests to *exclude* +-s: single -- run only a single test (see below) +-r: random -- randomize test execution order +-l: leakdebug -- if cycle garbage collection is enabled, run with DEBUG_LEAK If non-option arguments are present, they are names for tests to run, unless -x is given, in which case they are names for tests not to run. @@ -39,7 +40,7 @@ import random import test_support def main(tests=None, testdir=None, verbose=0, quiet=0, generate=0, - exclude=0, single=0, randomize=0): + exclude=0, single=0, randomize=0, leakdebug=0): """Execute a test suite. This also parses command-line options and modifies its behavior @@ -56,14 +57,15 @@ def main(tests=None, testdir=None, verbose=0, quiet=0, generate=0, command-line will be used. If that's empty, too, then all *.py files beginning with test_ will be used. - The other six default arguments (verbose, quiet, generate, exclude, - single, and randomize) allow programmers calling main() directly to - set the values that would normally be set by flags on the command - line. + The other seven default arguments (verbose, quiet, generate, exclude, + single, randomize, and leakdebug) allow programmers calling main() + directly to set the values that would normally be set by flags on the + command line. + """ try: - opts, args = getopt.getopt(sys.argv[1:], 'vgqxsr') + opts, args = getopt.getopt(sys.argv[1:], 'vgqxsrl') except getopt.error, msg: print msg print __doc__ @@ -75,6 +77,7 @@ def main(tests=None, testdir=None, verbose=0, quiet=0, generate=0, if o == '-x': exclude = 1 if o == '-s': single = 1 if o == '-r': randomize = 1 + if o == '-l': leakdebug = 1 if generate and verbose: print "-g and -v don't go together!" return 2 @@ -82,6 +85,14 @@ def main(tests=None, testdir=None, verbose=0, quiet=0, generate=0, bad = [] skipped = [] + if leakdebug: + try: + import gc + except ImportError: + print 'cycle garbage collection not available' + else: + gc.set_debug(gc.DEBUG_LEAK) + if single: from tempfile import gettempdir filename = os.path.join(gettempdir(), 'pynexttest') -- 2.40.0