summaryrefslogtreecommitdiff
path: root/rules
diff options
context:
space:
mode:
authorKlaus Aehlig <klaus.aehlig@huawei.com>2024-07-12 09:51:56 +0200
committerKlaus Aehlig <klaus.aehlig@huawei.com>2024-07-12 09:58:33 +0200
commit35bbafcc904d1d9cdfd353802a6ed9c73a7f1713 (patch)
tree40e64b1e89acd408e5f39fc1da5565c4cbfca2b1 /rules
parentef7afa452cc5afef0a2b517c347a363743a561ca (diff)
downloadjustbuild-35bbafcc904d1d9cdfd353802a6ed9c73a7f1713.tar.gz
Test summarizer: also report on average time
... of passed tests (as only for those, the time is meaningful). Given that we read the timing information anyway, if available, we can as well report more useful information.
Diffstat (limited to 'rules')
-rwxr-xr-xrules/shell/test/summarizer15
1 files changed, 13 insertions, 2 deletions
diff --git a/rules/shell/test/summarizer b/rules/shell/test/summarizer
index 72cd1b94..39b66be6 100755
--- a/rules/shell/test/summarizer
+++ b/rules/shell/test/summarizer
@@ -21,6 +21,9 @@ from typing import Any, Dict, List
g_RESULTS: Dict[str, List[Any]] = {}
g_COUNT: float = 0
+PASS_count: float = 0
+PASS_time: float = 0
+
time_start: float = time.time()
time_stop: float = 0
@@ -32,14 +35,19 @@ for attempt in os.listdir("."):
g_RESULTS[result] = g_RESULTS.get(result, []) + [int(attempt)]
try:
with open(os.path.join(attempt, "time-start")) as f:
- time_start = min(time_start, float(f.read().strip()))
+ start = float(f.read().strip())
+ time_start = min(time_start, start)
except:
pass
try:
with open(os.path.join(attempt, "time-stop")) as f:
- time_stop = max(time_start, float(f.read().strip()))
+ stop = float(f.read().strip())
+ time_stop = max(time_start, stop)
except:
pass
+ if (start > 0) and (stop >= start) and result == "PASS":
+ PASS_count += 1
+ PASS_time += stop - start
result: str = "UNKNOWN"
if set(g_RESULTS.keys()) <= set(["PASS", "FAIL"]):
@@ -68,6 +76,9 @@ with open("stdout", "w") as f:
f.write("\nother results: %r\n" % (g_RESULTS, ))
if result == "FLAKY":
f.write("\nFailure rate %5.2f%%\n" % (100.0 * len(failures) / g_COUNT))
+ if PASS_count >= 2:
+ f.write("\nAverage time of a passed test instance: %.1fs\n"
+ % (PASS_time / PASS_count))
with open("stderr", "w") as f:
pass