Adding --non-interactive switch to run_tests.py

This commit is contained in:
Dmitry Babokin
2013-08-21 19:25:30 +04:00
parent 0755e4f8ff
commit 60b413a9cb

View File

@@ -55,6 +55,8 @@ parser.add_option('--wrap-exe', dest='wrapexe',
default="") default="")
parser.add_option('--time', dest='time', help='Enable time output', parser.add_option('--time', dest='time', help='Enable time output',
default=False, action="store_true") 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() (options, args) = parser.parse_args()
@@ -162,14 +164,15 @@ total_tests = 0
# finished. Should be called with the lock held.. # finished. Should be called with the lock held..
def update_progress(fn, total_tests_arg, counter, max_test_length_arg): def update_progress(fn, total_tests_arg, counter, max_test_length_arg):
counter.value += 1 counter.value += 1
progress_str = " Done %d / %d [%s]" % (counter.value, total_tests_arg, fn) if options.non_interactive == False:
# spaces to clear out detrius from previous printing... progress_str = " Done %d / %d [%s]" % (counter.value, total_tests_arg, fn)
spaces_needed = max_test_length_arg - len(fn) # spaces to clear out detrius from previous printing...
for x in range(spaces_needed): spaces_needed = max_test_length_arg - len(fn)
progress_str += ' ' for x in range(spaces_needed):
progress_str += '\r' progress_str += ' '
sys.stdout.write(progress_str) progress_str += '\r'
sys.stdout.flush() sys.stdout.write(progress_str)
sys.stdout.flush()
def run_command(cmd): def run_command(cmd):
if options.verbose: if options.verbose:
@@ -489,11 +492,8 @@ if __name__ == '__main__':
# (i.e. return 0 if all is ok) # (i.e. return 0 if all is ok)
for t in task_threads: for t in task_threads:
t.join() t.join()
sys.stdout.write("\n") if options.non_interactive == False:
sys.stdout.write("\n")
elapsed_time = time.time() - start_time
if options.time:
sys.stdout.write("Elapsed time: %d s\n" % elapsed_time)
while not qret.empty(): while not qret.empty():
(c, r, s) = qret.get() (c, r, s) = qret.get()
@@ -501,6 +501,8 @@ if __name__ == '__main__':
run_error_files += r run_error_files += r
skip_files += s 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: if len(skip_files) > 0:
skip_files.sort() skip_files.sort()
sys.stdout.write("%d / %d tests SKIPPED:\n" % (len(skip_files), total_tests)) 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: for f in run_error_files:
sys.stdout.write("\t%s\n" % f) 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)) sys.exit(len(compile_error_files) + len(run_error_files))