#8560: add progress indicator to regrtest.
This commit is contained in:
parent
6fcac0d6f6
commit
dee7b8503d
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue