[lit] Print slowest tests and time histogram before result groups
authorJulian Lettner <julian.lettner@apple.com>
Fri, 22 Nov 2019 21:49:51 +0000 (13:49 -0800)
committerJulian Lettner <julian.lettner@apple.com>
Wed, 8 Apr 2020 05:19:50 +0000 (22:19 -0700)
llvm/utils/lit/lit/cl_arguments.py
llvm/utils/lit/lit/main.py
llvm/utils/lit/lit/util.py

index ee75275..4e185de 100644 (file)
@@ -91,7 +91,6 @@ def parse_args():
             action="append",
             default=[])
     execution_group.add_argument("--time-tests",
-            dest="timeTests",
             help="Track elapsed wall time for each test",
             action="store_true")
     execution_group.add_argument("--no-execute",
index 80eb1d5..73e33f5 100755 (executable)
@@ -91,6 +91,9 @@ def main(builtin_params={}):
 
     executed_tests = [t for t in filtered_tests if t.result]
 
+    if opts.time_tests:
+        print_histogram(executed_tests)
+
     print_results(executed_tests, elapsed, opts)
 
     if opts.output_path:
@@ -239,6 +242,11 @@ def execute_in_tmp_dir(run, lit_config):
                 lit_config.warning("Failed to delete temp directory '%s'" % tmp_dir)
 
 
+def print_histogram(tests):
+    test_times = [(t.getFullName(), t.result.elapsed) for t in tests]
+    lit.util.printHistogram(test_times, title='Tests')
+
+
 # Status code, summary label, group label
 failure_codes = [
     (lit.Test.UNRESOLVED,  'Unresolved Tests',    'Unresolved'),
@@ -263,10 +271,6 @@ def print_results(tests, elapsed, opts):
     for (code, _, group_label) in all_codes:
         print_group(code, group_label, tests_by_code[code], opts)
 
-    if opts.timeTests and tests:
-        test_times = [(t.getFullName(), t.result.elapsed) for t in tests]
-        lit.util.printHistogram(test_times, title='Tests')
-
     print_summary(tests_by_code, opts.quiet, elapsed)
 
 
index ac75f24..19942d0 100644 (file)
@@ -289,7 +289,7 @@ def printHistogram(items, title='Items'):
 
     barW = 40
     hr = '-' * (barW + 34)
-    print('\nSlowest %s:' % title)
+    print('Slowest %s:' % title)
     print(hr)
     for name, value in reversed(items[-20:]):
         print('%.2fs: %s' % (value, name))
@@ -310,6 +310,7 @@ def printHistogram(items, title='Items'):
         print('[%*.*fs,%*.*fs) :: [%s%s] :: [%*d/%*d]' % (
             pDigits, pfDigits, i * barH, pDigits, pfDigits, (i + 1) * barH,
             '*' * w, ' ' * (barW - w), cDigits, len(row), cDigits, len(items)))
+    print(hr)
 
 
 class ExecuteCommandTimeoutException(Exception):