From 35bbafcc904d1d9cdfd353802a6ed9c73a7f1713 Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Fri, 12 Jul 2024 09:51:56 +0200 Subject: 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. --- rules/shell/test/summarizer | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'rules') 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 -- cgit v1.2.3