[Lit] Sort previously failed tests early

D98179 added a mechanism to sort tests by test time to run slow tests
early, increasing potential parallelism. It also added a feature where
negative tests would be marked as negative, allowing subsequent test
runs to run them earlier. Unfortunately it never actually stored the
negative time, even if all the other code seemed to be inplace to sort
them early. Luckily the fix seems simple.

Differential Revision: https://reviews.llvm.org/D130570
This commit is contained in:
David Green 2022-07-27 17:55:11 +01:00
parent 1a6d82b93f
commit 7ce39d80a8
4 changed files with 7 additions and 3 deletions

View File

@ -28,7 +28,7 @@ def record_test_times(tests, lit_config):
# used as an actual path to a filesystem API, therefore we use '/' as
# the canonical separator so that Unix and Windows machines can share
# timing data.
times_by_suite[t.suite.exec_root]['/'.join(t.path_in_suite)] = t.result.elapsed
times_by_suite[t.suite.exec_root]['/'.join(t.path_in_suite)] = time
for s, value in times_by_suite.items():
try:

View File

@ -1,4 +1,5 @@
42.0 not-executed.txt
3.0 subdir/ccc.txt
2.0 bbb.txt
-0.2 fff.txt
0.1 aaa.txt

View File

@ -0,0 +1 @@
# RUN: false

View File

@ -1,7 +1,7 @@
## Check that we can reorder test runs.
# RUN: cp %{inputs}/reorder/.lit_test_times.txt %{inputs}/reorder/.lit_test_times.txt.orig
# RUN: %{lit-no-order-opt} %{inputs}/reorder > %t.out
# RUN: not %{lit-no-order-opt} %{inputs}/reorder > %t.out
# RUN: cp %{inputs}/reorder/.lit_test_times.txt %{inputs}/reorder/.lit_test_times.txt.new
# RUN: cp %{inputs}/reorder/.lit_test_times.txt.orig %{inputs}/reorder/.lit_test_times.txt
# RUN: not diff %{inputs}/reorder/.lit_test_times.txt.new %{inputs}/reorder/.lit_test_times.txt.orig
@ -12,10 +12,12 @@
# TIMES: not-executed.txt
# TIMES-NEXT: subdir/ccc.txt
# TIMES-NEXT: bbb.txt
# TIMES-NEXT: -{{.*}} fff.txt
# TIMES-NEXT: aaa.txt
# TIMES-NEXT: new-test.txt
# CHECK: -- Testing: 4 tests, 1 workers --
# CHECK: -- Testing: 5 tests, 1 workers --
# CHECK-NEXT: FAIL: reorder :: fff.txt
# CHECK-NEXT: PASS: reorder :: subdir/ccc.txt
# CHECK-NEXT: PASS: reorder :: bbb.txt
# CHECK-NEXT: PASS: reorder :: aaa.txt