mirror of https://github.com/python/cpython
add -L flag to cause leaks(1) command to run just before exit
This commit is contained in:
parent
4d5bc6031c
commit
0179a18034
|
@ -20,6 +20,7 @@ Command line options:
|
||||||
-h: help -- print this text and exit
|
-h: help -- print this text and exit
|
||||||
-t: threshold -- call gc.set_threshold(N)
|
-t: threshold -- call gc.set_threshold(N)
|
||||||
-T: coverage -- turn on code coverage using the trace module
|
-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,
|
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.
|
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
|
lines beginning with '#' are ignored. This is especially useful for
|
||||||
whittling down failures involving interactions among tests.
|
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,
|
-u is used to specify which special resource intensive tests to run,
|
||||||
such as those requiring large file support or network connectivity.
|
such as those requiring large file support or network connectivity.
|
||||||
The argument is a comma-separated list of words indicating the
|
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,
|
def main(tests=None, testdir=None, verbose=0, quiet=False, generate=False,
|
||||||
exclude=False, single=False, randomize=False, fromfile=None,
|
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.
|
"""Execute a test suite.
|
||||||
|
|
||||||
This also parses command-line options and modifies its behavior
|
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)
|
test_support.record_original_stdout(sys.stdout)
|
||||||
try:
|
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',
|
['help', 'verbose', 'quiet', 'generate',
|
||||||
'exclude', 'single', 'random', 'fromfile',
|
'exclude', 'single', 'random', 'fromfile',
|
||||||
'findleaks', 'use=', 'threshold=', 'trace',
|
'findleaks', 'use=', 'threshold=', 'trace',
|
||||||
|
'runleaks'
|
||||||
])
|
])
|
||||||
except getopt.error, msg:
|
except getopt.error, msg:
|
||||||
usage(2, msg)
|
usage(2, msg)
|
||||||
|
@ -174,6 +180,8 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, generate=False,
|
||||||
fromfile = a
|
fromfile = a
|
||||||
elif o in ('-l', '--findleaks'):
|
elif o in ('-l', '--findleaks'):
|
||||||
findleaks = True
|
findleaks = True
|
||||||
|
elif o in ('-L', '--runleaks'):
|
||||||
|
runleaks = True
|
||||||
elif o in ('-t', '--threshold'):
|
elif o in ('-t', '--threshold'):
|
||||||
import gc
|
import gc
|
||||||
gc.set_threshold(int(a))
|
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 = tracer.results()
|
||||||
r.write_results(show_missing=True, summary=True, coverdir=coverdir)
|
r.write_results(show_missing=True, summary=True, coverdir=coverdir)
|
||||||
|
|
||||||
|
if runleaks:
|
||||||
|
os.system("leaks %d" % os.getpid())
|
||||||
|
|
||||||
sys.exit(len(bad) > 0)
|
sys.exit(len(bad) > 0)
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue