diff options
author | Klaus Aehlig <klaus.aehlig@huawei.com> | 2024-07-12 09:51:56 +0200 |
---|---|---|
committer | Klaus Aehlig <klaus.aehlig@huawei.com> | 2024-07-12 09:58:33 +0200 |
commit | 35bbafcc904d1d9cdfd353802a6ed9c73a7f1713 (patch) | |
tree | 40e64b1e89acd408e5f39fc1da5565c4cbfca2b1 /rules | |
parent | ef7afa452cc5afef0a2b517c347a363743a561ca (diff) | |
download | justbuild-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-x | rules/shell/test/summarizer | 15 |
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 |