[llvm] 3847648 - Revert "[llvm][lit] Add option to run only the failed tests" (#171582)

via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 10 02:04:21 PST 2025


Author: Michael Buch
Date: 2025-12-10T10:04:16Z
New Revision: 3847648e84d2ff5194f605a8a9a5c0a5e5174939

URL: https://github.com/llvm/llvm-project/commit/3847648e84d2ff5194f605a8a9a5c0a5e5174939
DIFF: https://github.com/llvm/llvm-project/commit/3847648e84d2ff5194f605a8a9a5c0a5e5174939.diff

LOG: Revert "[llvm][lit] Add option to run only the failed tests" (#171582)

Reverts llvm/llvm-project#158043

This was approved for earlier revisions but the tests were failing on
Windows. I pushed a speculative fix and that fixed the CI, which caused
auto-merge to merge the PR. But I'd like to have approval for the latest
revision. So reverting for now and resubmitting a new PR

Added: 
    

Modified: 
    llvm/docs/CommandGuide/lit.rst
    llvm/utils/lit/lit/TestTimes.py
    llvm/utils/lit/lit/cl_arguments.py
    llvm/utils/lit/lit/main.py

Removed: 
    llvm/utils/lit/tests/Inputs/filter-failed/fail.txt
    llvm/utils/lit/tests/Inputs/filter-failed/lit.cfg
    llvm/utils/lit/tests/Inputs/filter-failed/pass.txt
    llvm/utils/lit/tests/Inputs/filter-failed/unresolved.txt
    llvm/utils/lit/tests/Inputs/filter-failed/xfail.txt
    llvm/utils/lit/tests/Inputs/filter-failed/xpass.txt
    llvm/utils/lit/tests/filter-failed-delete.py
    llvm/utils/lit/tests/filter-failed-rerun.py
    llvm/utils/lit/tests/filter-failed.py


################################################################################
diff  --git a/llvm/docs/CommandGuide/lit.rst b/llvm/docs/CommandGuide/lit.rst
index bbeafd2b9234c..bbc149740494a 100644
--- a/llvm/docs/CommandGuide/lit.rst
+++ b/llvm/docs/CommandGuide/lit.rst
@@ -314,11 +314,6 @@ The timing data is stored in the `test_exec_root` in a file named
   place of this option, which is especially useful in environments where the
   call to ``lit`` is issued indirectly.
 
-.. option:: --filter-failed
-
-  Run only those tests that previously failed. Tests that have been newly added
-  but not yet run are not included.
-
 .. option:: --xfail LIST
 
   Treat those tests whose name is in the semicolon separated list ``LIST`` as

diff  --git a/llvm/utils/lit/lit/TestTimes.py b/llvm/utils/lit/lit/TestTimes.py
index 0c18e3e015828..a2c0e0527b84b 100644
--- a/llvm/utils/lit/lit/TestTimes.py
+++ b/llvm/utils/lit/lit/TestTimes.py
@@ -22,7 +22,7 @@ def record_test_times(tests, lit_config):
             continue
         if not t.suite.exec_root in times_by_suite:
             times_by_suite[t.suite.exec_root] = read_test_times(t.suite)
-        time = min(-t.result.elapsed, -1.0e-6) if t.isFailure() else t.result.elapsed
+        time = -t.result.elapsed if t.isFailure() else t.result.elapsed
         # The "path" here is only used as a key into a dictionary. It is never
         # used as an actual path to a filesystem API, therefore we use '/' as
         # the canonical separator so that Unix and Windows machines can share

diff  --git a/llvm/utils/lit/lit/cl_arguments.py b/llvm/utils/lit/lit/cl_arguments.py
index ee05847e2c765..5c2ff4e70a3aa 100644
--- a/llvm/utils/lit/lit/cl_arguments.py
+++ b/llvm/utils/lit/lit/cl_arguments.py
@@ -423,12 +423,6 @@ def parse_args():
         help="Filter out tests with paths matching the given regular expression",
         default=os.environ.get("LIT_FILTER_OUT", "^$"),
     )
-    selection_group.add_argument(
-        "--filter-failed",
-        dest="filterFailed",
-        help="Only run tests which failed in the previous run",
-        action="store_true",
-    )
     selection_group.add_argument(
         "--xfail",
         metavar="LIST",

diff  --git a/llvm/utils/lit/lit/main.py b/llvm/utils/lit/lit/main.py
index 77b23bf560c6e..07e809b168dc2 100755
--- a/llvm/utils/lit/lit/main.py
+++ b/llvm/utils/lit/lit/main.py
@@ -90,9 +90,6 @@ def main(builtin_params={}):
         and not opts.filter_out.search(t.getFullName())
     ]
 
-    if opts.filterFailed:
-        selected_tests = [t for t in selected_tests if t.previous_failure]
-
     if not selected_tests:
         sys.stderr.write(
             "error: filter did not match any tests "

diff  --git a/llvm/utils/lit/tests/Inputs/filter-failed/fail.txt b/llvm/utils/lit/tests/Inputs/filter-failed/fail.txt
deleted file mode 100644
index 15eb81a5f5e95..0000000000000
--- a/llvm/utils/lit/tests/Inputs/filter-failed/fail.txt
+++ /dev/null
@@ -1 +0,0 @@
-RUN: false

diff  --git a/llvm/utils/lit/tests/Inputs/filter-failed/lit.cfg b/llvm/utils/lit/tests/Inputs/filter-failed/lit.cfg
deleted file mode 100644
index 5aee4eb132d6e..0000000000000
--- a/llvm/utils/lit/tests/Inputs/filter-failed/lit.cfg
+++ /dev/null
@@ -1,7 +0,0 @@
-import lit.formats
-
-config.name = "filter-failed"
-config.suffixes = [".txt"]
-config.test_format = lit.formats.ShTest()
-config.test_source_root = None
-config.test_exec_root = None

diff  --git a/llvm/utils/lit/tests/Inputs/filter-failed/pass.txt b/llvm/utils/lit/tests/Inputs/filter-failed/pass.txt
deleted file mode 100644
index 18efe9e49e95b..0000000000000
--- a/llvm/utils/lit/tests/Inputs/filter-failed/pass.txt
+++ /dev/null
@@ -1 +0,0 @@
-RUN: true

diff  --git a/llvm/utils/lit/tests/Inputs/filter-failed/unresolved.txt b/llvm/utils/lit/tests/Inputs/filter-failed/unresolved.txt
deleted file mode 100644
index e69de29bb2d1d..0000000000000

diff  --git a/llvm/utils/lit/tests/Inputs/filter-failed/xfail.txt b/llvm/utils/lit/tests/Inputs/filter-failed/xfail.txt
deleted file mode 100644
index 6814cda401483..0000000000000
--- a/llvm/utils/lit/tests/Inputs/filter-failed/xfail.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-RUN: false
-XFAIL: *

diff  --git a/llvm/utils/lit/tests/Inputs/filter-failed/xpass.txt b/llvm/utils/lit/tests/Inputs/filter-failed/xpass.txt
deleted file mode 100644
index 66b8a6a5a187c..0000000000000
--- a/llvm/utils/lit/tests/Inputs/filter-failed/xpass.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-RUN: true
-XFAIL: *

diff  --git a/llvm/utils/lit/tests/filter-failed-delete.py b/llvm/utils/lit/tests/filter-failed-delete.py
deleted file mode 100644
index 68bb840425ea3..0000000000000
--- a/llvm/utils/lit/tests/filter-failed-delete.py
+++ /dev/null
@@ -1,16 +0,0 @@
-# Shows behaviour when a previously failed test was deleted
-# before running with --filter-failed.
-
-# RUN: rm -rf %t
-# RUN: cp -r %{inputs}%{fs-sep}filter-failed %t
-#
-# RUN: not %{lit} %t | FileCheck %s --check-prefix=CHECK-FIRST
-#
-# RUN: rm %t%{fs-sep}fail.txt
-# RUN: not %{lit} --filter-failed %t | FileCheck %s --check-prefix=CHECK-SECOND
-
-# CHECK-FIRST: Testing: 5 tests
-# CHECK-FIRST: FAIL: filter-failed :: fail.txt
-
-# CHECK-SECOND: Testing: 2 of 4 tests
-# CHECK-SECOND-NOT: filter-failed :: fail.txt

diff  --git a/llvm/utils/lit/tests/filter-failed-rerun.py b/llvm/utils/lit/tests/filter-failed-rerun.py
deleted file mode 100644
index 7db12c26a02ff..0000000000000
--- a/llvm/utils/lit/tests/filter-failed-rerun.py
+++ /dev/null
@@ -1,18 +0,0 @@
-# Checks that --filter-failed won't re-run tests that have passed
-# since the last time --filter-failed was run.
-
-# RUN: rm -rf %t
-# RUN: cp -r %{inputs}%{fs-sep}filter-failed %t
-#
-# RUN: not %{lit} %t | FileCheck %s --check-prefix=CHECK-FIRST
-#
-# RUN: cp %t%{fs-sep}pass.txt %t%{fs-sep}fail.txt
-# RUN: not %{lit} %t | FileCheck %s --check-prefix=CHECK-SECOND
-# RUN: not %{lit} --filter-failed %t | FileCheck %s --check-prefix=CHECK-THIRD
-
-# CHECK-FIRST: FAIL: filter-failed :: fail.txt
-
-# CHECK-SECOND: PASS: filter-failed :: fail.txt
-
-# CHECK-THIRD: Testing: 2 of 5 tests
-# CHECK-THIRD-NOT: filter-failed :: fail.txt

diff  --git a/llvm/utils/lit/tests/filter-failed.py b/llvm/utils/lit/tests/filter-failed.py
deleted file mode 100644
index 3c1c6fe010077..0000000000000
--- a/llvm/utils/lit/tests/filter-failed.py
+++ /dev/null
@@ -1,23 +0,0 @@
-# Checks that --filter-failed only runs tests that previously failed.
-
-# RUN: rm -rf %t
-# RUN: cp -r %{inputs}%{fs-sep}filter-failed %t
-#
-# RUN: not %{lit} %t
-#
-# RUN: echo "RUN: false" > %t%{fs-sep}new-fail.txt
-# RUN: echo "RUN: true"  > %t%{fs-sep}new-pass.txt
-#
-# RUN: not %{lit} --filter-failed %t | FileCheck %s
-
-# CHECK: Testing: 3 of 7 tests
-# CHECK-DAG: FAIL: filter-failed :: fail.txt
-# CHECK-DAG: UNRESOLVED: filter-failed :: unresolved.txt
-# CHECK-DAG: XPASS: filter-failed :: xpass.txt
-
-# CHECK: Testing Time:
-# CHECK: Total Discovered Tests:
-# CHECK-NEXT:   Excluded : 4 {{\([0-9]*\.[0-9]*%\)}}
-# CHECK-NEXT:   Unresolved : 1 {{\([0-9]*\.[0-9]*%\)}}
-# CHECK-NEXT:   Failed : 1 {{\([0-9]*\.[0-9]*%\)}}
-# CHECK-NEXT:   Unexpectedly Passed: 1 {{\([0-9]*\.[0-9]*%\)}}


        


More information about the llvm-commits mailing list