[Lldb-commits] [PATCH] D11843: Make dosep output status by overwriting the same line.
Zachary Turner via lldb-commits
lldb-commits at lists.llvm.org
Fri Aug 7 12:56:27 PDT 2015
I was hoping to get my change in first, what do you think?
On Fri, Aug 7, 2015 at 12:54 PM Chaoren Lin <chaorenl at google.com> wrote:
> chaoren created this revision.
> chaoren added a reviewer: zturner.
> chaoren added a subscriber: lldb-commits.
>
> Update to D11816.
>
> http://reviews.llvm.org/D11843
>
> Files:
> test/dosep.py
>
> Index: test/dosep.py
> ===================================================================
> --- test/dosep.py
> +++ test/dosep.py
> @@ -66,41 +66,47 @@
> output_lock = None
> test_counter = None
> total_tests = None
> +test_name_len = None
> dotest_options = None
> output_on_success = False
>
> -def setup_global_variables(lock, counter, total, options):
> - global output_lock, test_counter, total_tests, dotest_options
> +def setup_global_variables(lock, counter, total, name_len, options):
> + global output_lock, test_counter, total_tests, test_name_len
> + global dotest_options
> output_lock = lock
> test_counter = counter
> total_tests = total
> + test_name_len = name_len
> dotest_options = options
>
> def report_test_failure(name, command, output):
> global output_lock
> with output_lock:
> - print >> sys.stderr, "\n"
> + print >> sys.stderr
> print >> sys.stderr, output
> + print >> sys.stderr, "[%s FAILED]" % name
> print >> sys.stderr, "Command invoked: %s" % ' '.join(command)
> - update_progress("FAILED", name)
> + update_progress(name)
>
> def report_test_pass(name, output):
> global output_lock, output_on_success
> with output_lock:
> if output_on_success:
> - print >> sys.stderr, "\n"
> + print >> sys.stderr
> print >> sys.stderr, output
> - update_progress("PASSED", name)
> + print >> sys.stderr, "[%s PASSED]" % name
> + update_progress(name)
>
> -def update_progress(test_name, result):
> - global output_lock, test_counter, total_tests
> +def update_progress(test_name=""):
> + global output_lock, test_counter, total_tests, test_name_len
> with output_lock:
> - if test_name != None:
> - sys.stderr.write("\n[%s %s] - %d out of %d test suites
> processed" %
> - (result, test_name, test_counter.value, total_tests))
> - else:
> - sys.stderr.write("\n%d out of %d test suites processed" %
> - (test_counter.value, total_tests))
> + counter_len = len(str(total_tests))
> + sys.stderr.write(
> + "\r%*d test suites out of %d directories processed - %-*s" %
> + (counter_len, test_counter.value, total_tests,
> + test_name_len.value, test_name))
> + if len(test_name) > test_name_len.value:
> + test_name_len.value = len(test_name)
> test_counter.value += 1
> sys.stdout.flush()
> sys.stderr.flush()
> @@ -213,19 +219,23 @@
> for root, dirs, files in os.walk(test_subdir, topdown=False):
> test_work_items.append((root, files, test_directory, dotest_argv))
>
> - global output_lock, test_counter, total_tests
> + global output_lock, test_counter, total_tests, test_name_len
> output_lock = multiprocessing.RLock()
> total_tests = len(test_work_items)
> test_counter = multiprocessing.Value('i', 0)
> - print >> sys.stderr, "Testing: %d tests, %d threads" % (total_tests,
> num_threads)
> - update_progress(None, None)
> + test_name_len = multiprocessing.Value('i', 0)
> + print >> sys.stderr, "Testing: %d directories, %d threads" % (
> + total_tests, num_threads)
> + update_progress()
>
> # Run the items, either in a pool (for multicore speedup) or
> # calling each individually.
> if num_threads > 1:
> - pool = multiprocessing.Pool(num_threads,
> - initializer = setup_global_variables,
> - initargs = (output_lock, test_counter, total_tests,
> dotest_options))
> + pool = multiprocessing.Pool(
> + num_threads,
> + initializer=setup_global_variables,
> + initargs=(output_lock, test_counter, total_tests,
> test_name_len,
> + dotest_options))
> test_results = pool.map(process_dir_worker, test_work_items)
> else:
> test_results = []
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20150807/0622359a/attachment.html>
More information about the lldb-commits
mailing list