From 4a9166c3bd9f682c96d2bef37107ed519e451b6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliver=20St=C3=B6neberg?= Date: Sun, 31 Jan 2021 21:20:52 +0100 Subject: [PATCH] donate-cpu-server.py: added "Date Time" column to time reports / optimized file parsing in some reports (#3105) --- tools/donate-cpu-server.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/tools/donate-cpu-server.py b/tools/donate-cpu-server.py index a50ad3034..766e6d5b0 100755 --- a/tools/donate-cpu-server.py +++ b/tools/donate-cpu-server.py @@ -23,7 +23,7 @@ import operator # Version scheme (MAJOR.MINOR.PATCH) should orientate on "Semantic Versioning" https://semver.org/ # Every change in this script should result in increasing the version number accordingly (exceptions may be cosmetic # changes) -SERVER_VERSION = "1.3.11" +SERVER_VERSION = "1.3.12" OLD_VERSION = '2.3' @@ -171,7 +171,7 @@ def crashReport(results_path: str) -> str: continue if line.startswith(str(current_year) + '-') or line.startswith(str(current_year - 1) + '-'): datestr = line - if line.startswith('count:'): + elif line.startswith('count:'): if line.find('Crash') < 0: break package = filename[filename.rfind('/')+1:] @@ -185,7 +185,7 @@ def crashReport(results_path: str) -> str: html += fmt(package, datestr, c2, c1) + '\n' if c1 != 'Crash': break - if line.find(' received signal ') != -1: + elif line.find(' received signal ') != -1: crash_line = next(file_, '').strip() location_index = crash_line.rfind(' at ') if location_index > 0: @@ -244,7 +244,7 @@ def timeoutReport(results_path: str) -> str: continue if line.startswith(str(current_year) + '-') or line.startswith(str(current_year - 1) + '-'): datestr = line - if line.startswith('count:'): + elif line.startswith('count:'): if line.find('TO!') < 0: break package = filename[filename.rfind('/')+1:] @@ -620,9 +620,11 @@ def timeReport(resultPath: str, show_gt: bool) -> str: html += '
\n'
     column_width = [40, 10, 10, 10, 10]
     html += ''
-    html += fmt('Package', OLD_VERSION, 'Head', 'Factor', link=False, column_width=column_width)
+    html += fmt('Package', 'Date       Time', OLD_VERSION, 'Head', 'Factor', link=False, column_width=column_width)
     html += '\n'
 
+    current_year = datetime.date.today().year
+
     data = {}
 
     total_time_base = 0.0
@@ -630,6 +632,7 @@ def timeReport(resultPath: str, show_gt: bool) -> str:
     for filename in glob.glob(resultPath + '/*'):
         if not os.path.isfile(filename):
             continue
+        datestr = ''
         for line in open(filename, 'rt'):
             if line.startswith('cppcheck: '):
                 if OLD_VERSION not in line:
@@ -638,6 +641,9 @@ def timeReport(resultPath: str, show_gt: bool) -> str:
                 else:
                     # Current package, parse on
                     continue
+            if line.startswith(str(current_year) + '-') or line.startswith(str(current_year - 1) + '-'):
+                datestr = line
+                continue
             if not line.startswith('elapsed-time:'):
                 continue
             split_line = line.strip().split()
@@ -659,16 +665,16 @@ def timeReport(resultPath: str, show_gt: bool) -> str:
                 else:
                     time_factor = 0.0
                 pkg_name = filename[len(resultPath)+1:]
-                data[pkg_name] = (split_line[2], split_line[1], time_factor)
+                data[pkg_name] = (datestr, split_line[2], split_line[1], time_factor)
             break
 
-    sorted_data = sorted(data.items(), key=lambda kv: kv[1][2])
+    sorted_data = sorted(data.items(), key=lambda kv: kv[1][3])
     if show_gt:
         sorted_data.reverse()
 
     sorted_dict = collections.OrderedDict(sorted_data)
     for key in sorted_dict:
-        html += fmt(key, sorted_dict[key][0], sorted_dict[key][1], '{:.2f}'.format(sorted_dict[key][2]),
+        html += fmt(key, sorted_dict[key][0], sorted_dict[key][1], sorted_dict[key][2], '{:.2f}'.format(sorted_dict[key][3]),
                     column_width=column_width) + '\n'
 
     html += '\n'