Add regrtest -w option.

This commit is contained in:
Martin v. Löwis 2006-03-10 21:26:16 +00:00
parent f688cc574c
commit 04824ce8ed
2 changed files with 22 additions and 3 deletions

View File

@ -9,6 +9,7 @@ additional facilities.
Command line options: Command line options:
-v: verbose -- run tests in verbose mode with output to stdout -v: verbose -- run tests in verbose mode with output to stdout
-w: verbose2 -- re-run failed tests in verbose mode
-q: quiet -- don't print anything except if a test fails -q: quiet -- don't print anything except if a test fails
-g: generate -- write the output file for a test instead of comparing it -g: generate -- write the output file for a test instead of comparing it
-x: exclude -- arguments are tests to *exclude* -x: exclude -- arguments are tests to *exclude*
@ -154,7 +155,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, coverdir='coverage', findleaks=False, use_resources=None, trace=False, coverdir='coverage',
runleaks=False, huntrleaks=False): runleaks=False, huntrleaks=False, verbose2=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
@ -179,12 +180,12 @@ 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:TD:NLR:', opts, args = getopt.getopt(sys.argv[1:], 'hvgqxsrf:lu:t:TD:NLR:w',
['help', 'verbose', 'quiet', 'generate', ['help', 'verbose', 'quiet', 'generate',
'exclude', 'single', 'random', 'fromfile', 'exclude', 'single', 'random', 'fromfile',
'findleaks', 'use=', 'threshold=', 'trace', 'findleaks', 'use=', 'threshold=', 'trace',
'coverdir=', 'nocoverdir', 'runleaks', 'coverdir=', 'nocoverdir', 'runleaks',
'huntrleaks=' 'huntrleaks=', 'verbose2',
]) ])
except getopt.error, msg: except getopt.error, msg:
usage(2, msg) usage(2, msg)
@ -197,6 +198,8 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, generate=False,
usage(0) usage(0)
elif o in ('-v', '--verbose'): elif o in ('-v', '--verbose'):
verbose += 1 verbose += 1
elif o in ('-w', '--verbose2'):
verbose2 = True
elif o in ('-q', '--quiet'): elif o in ('-q', '--quiet'):
quiet = True; quiet = True;
verbose = 0 verbose = 0
@ -398,6 +401,20 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, generate=False,
print "Ask someone to teach regrtest.py about which tests are" print "Ask someone to teach regrtest.py about which tests are"
print "expected to get skipped on", plat + "." print "expected to get skipped on", plat + "."
if verbose2 and bad:
print "Re-running failed tests in verbose mode"
for test in bad:
try:
test_support.verbose = 1
ok = runtest(test, generate, 1, quiet, testdir,
huntrleaks)
except KeyboardInterrupt:
# print a newline separate from the ^C
print
break
except:
raise
if single: if single:
alltests = findtests(testdir, stdtests, nottests) alltests = findtests(testdir, stdtests, nottests)
for i in range(len(alltests)): for i in range(len(alltests)):

View File

@ -440,6 +440,8 @@ Extension Modules
Library Library
------- -------
- A regrtest option -w was added to re-run failed tests in verbose mode.
- Patch #1446372: quit and exit can now be called from the interactive - Patch #1446372: quit and exit can now be called from the interactive
interpreter to exit. interpreter to exit.