From 60b413a9cb9b30dc2c6e1f9c345bdf19286f9114 Mon Sep 17 00:00:00 2001 From: Dmitry Babokin Date: Wed, 21 Aug 2013 19:25:30 +0400 Subject: [PATCH] Adding --non-interactive switch to run_tests.py --- run_tests.py | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/run_tests.py b/run_tests.py index 7c6b1eb8..74407ce4 100755 --- a/run_tests.py +++ b/run_tests.py @@ -55,6 +55,8 @@ parser.add_option('--wrap-exe', dest='wrapexe', default="") parser.add_option('--time', dest='time', help='Enable time output', default=False, action="store_true") +parser.add_option('--non-interactive', dest='non_interactive', help='Disable interactive status updates', + default=False, action="store_true") (options, args) = parser.parse_args() @@ -162,14 +164,15 @@ total_tests = 0 # finished. Should be called with the lock held.. def update_progress(fn, total_tests_arg, counter, max_test_length_arg): counter.value += 1 - progress_str = " Done %d / %d [%s]" % (counter.value, total_tests_arg, fn) - # spaces to clear out detrius from previous printing... - spaces_needed = max_test_length_arg - len(fn) - for x in range(spaces_needed): - progress_str += ' ' - progress_str += '\r' - sys.stdout.write(progress_str) - sys.stdout.flush() + if options.non_interactive == False: + progress_str = " Done %d / %d [%s]" % (counter.value, total_tests_arg, fn) + # spaces to clear out detrius from previous printing... + spaces_needed = max_test_length_arg - len(fn) + for x in range(spaces_needed): + progress_str += ' ' + progress_str += '\r' + sys.stdout.write(progress_str) + sys.stdout.flush() def run_command(cmd): if options.verbose: @@ -489,11 +492,8 @@ if __name__ == '__main__': # (i.e. return 0 if all is ok) for t in task_threads: t.join() - sys.stdout.write("\n") - - elapsed_time = time.time() - start_time - if options.time: - sys.stdout.write("Elapsed time: %d s\n" % elapsed_time) + if options.non_interactive == False: + sys.stdout.write("\n") while not qret.empty(): (c, r, s) = qret.get() @@ -501,6 +501,8 @@ if __name__ == '__main__': run_error_files += r skip_files += s + if options.non_interactive: + sys.stdout.write(" Done %d / %d\n" % (finished_tests_counter.value, total_tests)) if len(skip_files) > 0: skip_files.sort() sys.stdout.write("%d / %d tests SKIPPED:\n" % (len(skip_files), total_tests)) @@ -517,4 +519,8 @@ if __name__ == '__main__': for f in run_error_files: sys.stdout.write("\t%s\n" % f) + elapsed_time = time.time() - start_time + if options.time: + sys.stdout.write("Elapsed time: %d s\n" % elapsed_time) + sys.exit(len(compile_error_files) + len(run_error_files))