diff Lib/test/regrtest.py @ 32273:95287cddbc1e legacy-trunk

add -L flag to cause leaks(1) command to run just before exit
author Skip Montanaro <skip@pobox.com>
date Sun, 06 Jun 2004 15:53:18 +0000
parents 308c193f51e3
children d2c1c7ae7cf4
line wrap: on
line diff
--- a/Lib/test/regrtest.py	Sun Jun 06 01:29:22 2004 +0000
+++ b/Lib/test/regrtest.py	Sun Jun 06 15:53:18 2004 +0000
@@ -20,6 +20,7 @@
 -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 @@
 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 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 @@
 
     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 @@
             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 @@
         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)