From: Skip Montanaro Date: Sun, 6 Jun 2004 15:53:18 +0000 (+0000) Subject: add -L flag to cause leaks(1) command to run just before exit X-Git-Tag: v2.4a1~247 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0179a18034b2316a70655d0f05bfbb20a0881f17;p=python add -L flag to cause leaks(1) command to run just before exit --- diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py index 8f5da02906..d16de6bca6 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)