diff options
author | Georg Brandl <georg@python.org> | 2010-08-02 18:59:52 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2010-08-02 18:59:52 (GMT) |
commit | dee7b8503da8ef8aaa10df54e465911fe163c917 (patch) | |
tree | d78695a65aa5ac9471a91590c5b7b2e51f4267e2 | |
parent | 6fcac0d6f6d513b2cd9bc8df4e42fbf6d46521bd (diff) | |
download | cpython-dee7b8503da8ef8aaa10df54e465911fe163c917.zip cpython-dee7b8503da8ef8aaa10df54e465911fe163c917.tar.gz cpython-dee7b8503da8ef8aaa10df54e465911fe163c917.tar.bz2 |
#8560: add progress indicator to regrtest.
-rwxr-xr-x | Lib/test/regrtest.py | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py index b5a91ef..f648d95 100755 --- a/Lib/test/regrtest.py +++ b/Lib/test/regrtest.py @@ -390,7 +390,7 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, sys.exit(0) else: print(("No handler for option {}. Please report this as a bug " - "at http://bugs.python.org.").format(o), file=sys.stderr) + "at http://bugs.python.org.").format(o), file=sys.stderr) sys.exit(1) if single and fromfile: usage("-s and -f don't go together!") @@ -517,6 +517,9 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, else: tests = iter(selected) + tests = list(tests) + test_count = len(tests) + test_count_width = len(str(test_count)) if use_mp: try: from threading import Thread @@ -559,8 +562,6 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, output.put((None, None, None, None)) return result = json.loads(result) - if not quiet: - stdout = test+'\n'+stdout output.put((test, stdout.rstrip(), stderr.rstrip(), result)) except BaseException: output.put((None, None, None, None)) @@ -569,12 +570,16 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, for worker in workers: worker.start() finished = 0 + test_index = 1 try: while finished < use_mp: test, stdout, stderr, result = output.get() if test is None: finished += 1 continue + if not quiet: + print("[{1:{0}}/{2:{0}}] {3}".format( + test_count_width, test_index, test_count, test)) if stdout: print(stdout) if stderr: @@ -583,15 +588,17 @@ def main(tests=None, testdir=None, verbose=0, quiet=False, assert result[1] == 'KeyboardInterrupt' raise KeyboardInterrupt # What else? accumulate_result(test, result) + test_index += 1 except KeyboardInterrupt: interrupted = True pending.close() for worker in workers: worker.join() else: - for test in tests: + for test_index, test in enumerate(tests, 1): if not quiet: - print(test) + print("[{1:{0}}/{2:{0}}] {3}".format( + test_count_width, test_index, test_count, test)) sys.stdout.flush() if trace: # If we're tracing code coverage, then we don't exit with status |