[lit] don't skip test times when executions are instantaneous
authorAshay Rane <ashay@users.noreply.github.com>
Tue, 7 Feb 2023 19:27:23 +0000 (11:27 -0800)
committerStella Stamenova <stilis@microsoft.com>
Tue, 7 Feb 2023 19:27:44 +0000 (11:27 -0800)
If a test executes quickly or if the timing resolution is too coarse,
the running time associated with a test could be zero. This happens
often for the //llvm/utils/lit/tests/reorder.py test on Windows, which
causes the test to fail non-deterministically.

This patch modifies the existing check, so that instead of skipping
zeros, lit now skips if the timing is None (presumably due to an error
in measurement). Recurring executions of the reorder.py test on Windows
seem to indicate that the test no longer exhibits occasional failure.

Reviewed By: stella.stamenova

Differential Revision: https://reviews.llvm.org/D143504

llvm/utils/lit/lit/TestTimes.py

index 8379cf5..3fc2220 100644 (file)
@@ -19,7 +19,7 @@ def record_test_times(tests, lit_config):
     times_by_suite = {}
     for t in tests:
         assert t.suite.test_times is None
-        if not t.result.elapsed:
+        if t.result.elapsed is None:
             continue
         if not t.suite.exec_root in times_by_suite:
             times_by_suite[t.suite.exec_root] = read_test_times(t.suite)