summaryrefslogtreecommitdiffstats
path: root/Lib/test/regrtest.py
diff options
context:
space:
mode:
authorSkip Montanaro <skip@pobox.com>2004-06-06 15:53:18 (GMT)
committerSkip Montanaro <skip@pobox.com>2004-06-06 15:53:18 (GMT)
commit0179a18034b2316a70655d0f05bfbb20a0881f17 (patch)
tree4397c15f457620933b7c040f57c09b56ab7a2cbf /Lib/test/regrtest.py
parent4d5bc6031ca883201f87e0e3c94e5746f9f91439 (diff)
downloadcpython-0179a18034b2316a70655d0f05bfbb20a0881f17.zip
cpython-0179a18034b2316a70655d0f05bfbb20a0881f17.tar.gz
cpython-0179a18034b2316a70655d0f05bfbb20a0881f17.tar.bz2
add -L flag to cause leaks(1) command to run just before exit
Diffstat (limited to 'Lib/test/regrtest.py')
-rwxr-xr-xLib/test/regrtest.py15
1 files changed, 13 insertions, 2 deletions
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index 8f5da02..d16de6b 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -20,6 +20,7 @@ Command line options:
-h: help -- print this text and exit
-t: threshold -- call gc.set_threshold(N)
-T: coverage -- turn on code coverage using the trace module
+-L: runleaks -- run the leaks(1) command just before exit
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.
@@ -42,6 +43,10 @@ or more test names per line. Whitespace is ignored. Blank lines and
lines beginning with '#' are ignored. This is especially useful for
whittling down failures involving interactions among tests.
+-L causes the leaks(1) command to be run just before exit if it exists.
+leaks(1) is available on Mac OS X and presumably on some other
+FreeBSD-derived systems.
+
-u is used to specify which special resource intensive tests to run,
such as those requiring large file support or network connectivity.
The argument is a comma-separated list of words indicating the
@@ -118,7 +123,7 @@ def usage(code, msg=''):
def main(tests=None, testdir=None, verbose=0, quiet=False, generate=False,
exclude=False, single=False, randomize=False, fromfile=None,
- findleaks=False, use_resources=None, trace=False):
+ findleaks=False, use_resources=None, trace=False, runleaks=False):
"""Execute a test suite.
This also parses command-line options and modifies its behavior
@@ -143,10 +148,11 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, generate=False,
test_support.record_original_stdout(sys.stdout)
try:
- opts, args = getopt.getopt(sys.argv[1:], 'hvgqxsrf:lu:t:T',
+ opts, args = getopt.getopt(sys.argv[1:], 'hvgqxsrf:lu:t:TL',
['help', 'verbose', 'quiet', 'generate',
'exclude', 'single', 'random', 'fromfile',
'findleaks', 'use=', 'threshold=', 'trace',
+ 'runleaks'
])
except getopt.error, msg:
usage(2, msg)
@@ -174,6 +180,8 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, generate=False,
fromfile = a
elif o in ('-l', '--findleaks'):
findleaks = True
+ elif o in ('-L', '--runleaks'):
+ runleaks = True
elif o in ('-t', '--threshold'):
import gc
gc.set_threshold(int(a))
@@ -350,6 +358,9 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, generate=False,
r = tracer.results()
r.write_results(show_missing=True, summary=True, coverdir=coverdir)
+ if runleaks:
+ os.system("leaks %d" % os.getpid())
+
sys.exit(len(bad) > 0)