99Command line options:
1010
1111-v: verbose -- run tests in verbose mode with output to stdout
12+ -w: verbose2 -- re-run failed tests in verbose mode
1213-q: quiet -- don't print anything except if a test fails
1314-g: generate -- write the output file for a test instead of comparing it
1415-x: exclude -- arguments are tests to *exclude*
@@ -154,7 +155,7 @@ def usage(code, msg=''):
154155def main (tests = None , testdir = None , verbose = 0 , quiet = False , generate = False ,
155156 exclude = False , single = False , randomize = False , fromfile = None ,
156157 findleaks = False , use_resources = None , trace = False , coverdir = 'coverage' ,
157- runleaks = False , huntrleaks = False ):
158+ runleaks = False , huntrleaks = False , verbose2 = False ):
158159 """Execute a test suite.
159160
160161 This also parses command-line options and modifies its behavior
@@ -179,12 +180,12 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, generate=False,
179180
180181 test_support .record_original_stdout (sys .stdout )
181182 try :
182- opts , args = getopt .getopt (sys .argv [1 :], 'hvgqxsrf:lu:t:TD:NLR:' ,
183+ opts , args = getopt .getopt (sys .argv [1 :], 'hvgqxsrf:lu:t:TD:NLR:w ' ,
183184 ['help' , 'verbose' , 'quiet' , 'generate' ,
184185 'exclude' , 'single' , 'random' , 'fromfile' ,
185186 'findleaks' , 'use=' , 'threshold=' , 'trace' ,
186187 'coverdir=' , 'nocoverdir' , 'runleaks' ,
187- 'huntrleaks='
188+ 'huntrleaks=' , 'verbose2' ,
188189 ])
189190 except getopt .error , msg :
190191 usage (2 , msg )
@@ -197,6 +198,8 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, generate=False,
197198 usage (0 )
198199 elif o in ('-v' , '--verbose' ):
199200 verbose += 1
201+ elif o in ('-w' , '--verbose2' ):
202+ verbose2 = True
200203 elif o in ('-q' , '--quiet' ):
201204 quiet = True ;
202205 verbose = 0
@@ -398,6 +401,20 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, generate=False,
398401 print "Ask someone to teach regrtest.py about which tests are"
399402 print "expected to get skipped on" , plat + "."
400403
404+ if verbose2 and bad :
405+ print "Re-running failed tests in verbose mode"
406+ for test in bad :
407+ try :
408+ test_support .verbose = 1
409+ ok = runtest (test , generate , 1 , quiet , testdir ,
410+ huntrleaks )
411+ except KeyboardInterrupt :
412+ # print a newline separate from the ^C
413+ print
414+ break
415+ except :
416+ raise
417+
401418 if single :
402419 alltests = findtests (testdir , stdtests , nottests )
403420 for i in range (len (alltests )):
0 commit comments