Author: Vitaly Buka
Date: 2026-05-26T23:29:43-07:00
New Revision: bcb555dda1827901ad7820fb5545a07ab44e190d

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

LOG: Revert "[lit] Move maxIndividualTestTime from global to test suite config 
(#1…"

This reverts commit 4ee7e900f321c78271c87da47f1d7bd4263f3e7c.

Added: 
    

Modified: 
    bolt/test/lit.cfg.py
    libsycl/test/lit.cfg.py
    lldb/test/API/lit.cfg.py
    lldb/test/Shell/lit.cfg.py
    llvm/utils/lit/lit/LitConfig.py
    llvm/utils/lit/lit/TestRunner.py
    llvm/utils/lit/lit/TestingConfig.py
    llvm/utils/lit/lit/formats/googletest.py
    llvm/utils/lit/lit/main.py
    llvm/utils/lit/tests/Inputs/googletest-timeout/lit.cfg
    llvm/utils/lit/tests/Inputs/shtest-timeout/lit.cfg

Removed: 
    


################################################################################
diff  --git a/bolt/test/lit.cfg.py b/bolt/test/lit.cfg.py
index a3a49444156b2..3299051db4983 100644
--- a/bolt/test/lit.cfg.py
+++ b/bolt/test/lit.cfg.py
@@ -69,7 +69,7 @@
 supported, errormsg = lit_config.maxIndividualTestTimeIsSupported
 if supported:
     config.available_features.add("lit-max-individual-test-time")
-    config.maxIndividualTestTime = 60
+    lit_config.maxIndividualTestTime = 60
 else:
     lit_config.warning(
         "Setting a timeout per test not supported. "

diff  --git a/libsycl/test/lit.cfg.py b/libsycl/test/lit.cfg.py
index 2610f23ba90a8..377be90791ef0 100644
--- a/libsycl/test/lit.cfg.py
+++ b/libsycl/test/lit.cfg.py
@@ -205,7 +205,7 @@ def __exit__(self, exc_type, exc_value, exc_traceback):
     import psutil
 
     # Set timeout for a single test
-    config.maxIndividualTestTime = 600
+    lit_config.maxIndividualTestTime = 600
 
 except ImportError:
     pass

diff  --git a/lldb/test/API/lit.cfg.py b/lldb/test/API/lit.cfg.py
index 2662a77199641..359d45a0c724e 100644
--- a/lldb/test/API/lit.cfg.py
+++ b/lldb/test/API/lit.cfg.py
@@ -199,7 +199,7 @@ def delete_module_cache(path):
 # lit complains if the value is set but it is not supported.
 supported, errormsg = lit_config.maxIndividualTestTimeIsSupported
 if supported:
-    config.maxIndividualTestTime = 600
+    lit_config.maxIndividualTestTime = 600
 else:
     lit_config.warning("Could not set a default per-test timeout. " + errormsg)
 

diff  --git a/lldb/test/Shell/lit.cfg.py b/lldb/test/Shell/lit.cfg.py
index 1b7532d12ce4a..3bff8b087c5a4 100644
--- a/lldb/test/Shell/lit.cfg.py
+++ b/lldb/test/Shell/lit.cfg.py
@@ -120,7 +120,7 @@ def calculate_arch_features(arch_string):
 # lit complains if the value is set but it is not supported.
 supported, errormsg = lit_config.maxIndividualTestTimeIsSupported
 if supported:
-    config.maxIndividualTestTime = 600
+    lit_config.maxIndividualTestTime = 600
 else:
     lit_config.warning("Could not set a default per-test timeout. " + errormsg)
 

diff  --git a/llvm/utils/lit/lit/LitConfig.py b/llvm/utils/lit/lit/LitConfig.py
index 4696a0fda1243..be8596f0ccdc4 100644
--- a/llvm/utils/lit/lit/LitConfig.py
+++ b/llvm/utils/lit/lit/LitConfig.py
@@ -35,7 +35,7 @@ def __init__(
         order,
         params,
         config_prefix=None,
-        maxIndividualTestTime=None,
+        maxIndividualTestTime=0,
         maxRetriesPerTest=None,
         parallelism_groups={},
         per_test_coverage=False,
@@ -123,9 +123,6 @@ def maxIndividualTestTime(self, value):
         Interface for setting maximum time to spend executing
         a single test
         """
-        if value is None:
-            self._maxIndividualTestTime = None
-            return
         if not isinstance(value, int):
             self.fatal("maxIndividualTestTime must set to a value of type 
int.")
         self._maxIndividualTestTime = value

diff  --git a/llvm/utils/lit/lit/TestRunner.py 
b/llvm/utils/lit/lit/TestRunner.py
index 66450f5fa6b81..0159028f36723 100644
--- a/llvm/utils/lit/lit/TestRunner.py
+++ b/llvm/utils/lit/lit/TestRunner.py
@@ -703,7 +703,7 @@ def executeScriptInternal(
     shenv.env["LIT_CURRENT_TESTCASE"] = test.getFullName()
 
     exitCode, timeoutInfo = executeShCmd(
-        cmd, shenv, results, timeout=test.config.maxIndividualTestTime
+        cmd, shenv, results, timeout=litConfig.maxIndividualTestTime
     )
 
     out = err = ""
@@ -747,7 +747,7 @@ def executeScriptInternal(
 
         # If nothing interesting happened, move on.
         if (
-            test.config.maxIndividualTestTime == 0
+            litConfig.maxIndividualTestTime == 0
             and result.exitCode == 0
             and not result.stdout.strip()
             and not result.stderr.strip()
@@ -776,7 +776,7 @@ def executeScriptInternal(
             else:
                 codeStr = str(result.exitCode)
             out += "# error: command failed with exit status: %s\n" % 
(codeStr,)
-        if test.config.maxIndividualTestTime > 0 and result.timeoutReached:
+        if litConfig.maxIndividualTestTime > 0 and result.timeoutReached:
             out += "# error: command reached timeout: %s\n" % (
                 str(result.timeoutReached),
             )
@@ -900,7 +900,7 @@ def executeScript(
             command,
             cwd=cwd,
             env=env,
-            timeout=test.config.maxIndividualTestTime,
+            timeout=litConfig.maxIndividualTestTime,
         )
         return (out, err, exitCode, None, None)
     except lit.util.ExecuteCommandTimeoutException as e:

diff  --git a/llvm/utils/lit/lit/TestingConfig.py 
b/llvm/utils/lit/lit/TestingConfig.py
index 7c7d51ddaf48d..a6b4fa212ae35 100644
--- a/llvm/utils/lit/lit/TestingConfig.py
+++ b/llvm/utils/lit/lit/TestingConfig.py
@@ -125,7 +125,6 @@ def fromdefaults(litConfig):
             available_features=available_features,
             pipefail=True,
             standalone_tests=False,
-            maxIndividualTestTime=litConfig.maxIndividualTestTime,
         )
 
     def load_from_path(self, path, litConfig):
@@ -186,7 +185,6 @@ def __init__(
         is_early=False,
         parallelism_group=None,
         standalone_tests=False,
-        maxIndividualTestTime=0,
     ):
         self.parent = parent
         self.name = str(name)
@@ -201,7 +199,6 @@ def __init__(
         self.available_features = set(available_features)
         self.pipefail = pipefail
         self.standalone_tests = standalone_tests
-        self.maxIndividualTestTime = maxIndividualTestTime or 0
         # This list is used by TestRunner.py to restrict running only tests 
that
         # require one of the features in this list if this list is non-empty.
         # Configurations can set this list to restrict the set of tests to run.
@@ -250,19 +247,6 @@ def finish(self, litConfig):
             and getattr(self, "test_retry_attempts", None) is None
         ):
             self.test_retry_attempts = litConfig.maxRetriesPerTest
-        # Global config is from LIT_OPTS and must override site-specific 
settings.
-        if litConfig.maxIndividualTestTime is not None:
-            suite_timeout = self.maxIndividualTestTime
-            if suite_timeout > 0 and suite_timeout != 
litConfig.maxIndividualTestTime:
-                litConfig.note(
-                    (
-                        "The test suite {0!r} configuration requested an 
individual"
-                        " test timeout of {1} seconds but a timeout of {2} 
seconds was"
-                        " requested on the command line. Forcing timeout to be 
{2}"
-                        " seconds."
-                    ).format(self.name, suite_timeout, 
litConfig.maxIndividualTestTime)
-                )
-            self.maxIndividualTestTime = litConfig.maxIndividualTestTime
 
     @property
     def root(self):

diff  --git a/llvm/utils/lit/lit/formats/googletest.py 
b/llvm/utils/lit/lit/formats/googletest.py
index e567cce541beb..5d60da509bdb7 100644
--- a/llvm/utils/lit/lit/formats/googletest.py
+++ b/llvm/utils/lit/lit/formats/googletest.py
@@ -191,7 +191,7 @@ def get_shard_header(shard_env):
             out, _, exitCode = lit.util.executeCommand(
                 cmd,
                 env=test.config.environment,
-                timeout=test.config.maxIndividualTestTime,
+                timeout=litConfig.maxIndividualTestTime,
                 redirect_stderr=True,
             )
         except lit.util.ExecuteCommandTimeoutException as e:
@@ -199,7 +199,7 @@ def get_shard_header(shard_env):
             return (
                 lit.Test.TIMEOUT,
                 f"{shard_header}{stream_msg}Reached "
-                f"timeout of {test.config.maxIndividualTestTime} seconds",
+                f"timeout of {litConfig.maxIndividualTestTime} seconds",
             )
 
         if not os.path.exists(test.gtest_json_file):

diff  --git a/llvm/utils/lit/lit/main.py b/llvm/utils/lit/lit/main.py
index a3bd153040a69..d1e16b28bea26 100755
--- a/llvm/utils/lit/lit/main.py
+++ b/llvm/utils/lit/lit/main.py
@@ -44,7 +44,6 @@ def main(builtin_params={}):
         gtest_sharding=opts.gtest_sharding,
         maxRetriesPerTest=opts.maxRetriesPerTest,
         update_tests=opts.update_tests,
-        maxIndividualTestTime=opts.maxIndividualTestTime,
     )
 
     discovered_tests = lit.discovery.find_tests_for_inputs(
@@ -69,6 +68,18 @@ def main(builtin_params={}):
         print(" ".join(sorted(features)))
         sys.exit(0)
 
+    # Command line overrides configuration for maxIndividualTestTime.
+    if opts.maxIndividualTestTime is not None:  # `not None` is important 
(default: 0)
+        if opts.maxIndividualTestTime != lit_config.maxIndividualTestTime:
+            lit_config.note(
+                (
+                    "The test suite configuration requested an individual"
+                    " test timeout of {0} seconds but a timeout of {1} seconds 
was"
+                    " requested on the command line. Forcing timeout to be {1}"
+                    " seconds."
+                ).format(lit_config.maxIndividualTestTime, 
opts.maxIndividualTestTime)
+            )
+            lit_config.maxIndividualTestTime = opts.maxIndividualTestTime
 
     determine_order(discovered_tests, opts.order)
 

diff  --git a/llvm/utils/lit/tests/Inputs/googletest-timeout/lit.cfg 
b/llvm/utils/lit/tests/Inputs/googletest-timeout/lit.cfg
index 200347aaf85c7..c1eab40f47e8d 100644
--- a/llvm/utils/lit/tests/Inputs/googletest-timeout/lit.cfg
+++ b/llvm/utils/lit/tests/Inputs/googletest-timeout/lit.cfg
@@ -8,4 +8,4 @@ config.environment["GTEST_FILTER"] = 
lit_config.params.get("gtest_filter")
 
 if configSetTimeout == "1":
     # Try setting the max individual test time in the configuration
-    config.maxIndividualTestTime = 1
+    lit_config.maxIndividualTestTime = 1

diff  --git a/llvm/utils/lit/tests/Inputs/shtest-timeout/lit.cfg 
b/llvm/utils/lit/tests/Inputs/shtest-timeout/lit.cfg
index 3a72f35024eb2..b78c0eac31d88 100644
--- a/llvm/utils/lit/tests/Inputs/shtest-timeout/lit.cfg
+++ b/llvm/utils/lit/tests/Inputs/shtest-timeout/lit.cfg
@@ -19,7 +19,7 @@ configSetTimeout = lit_config.params.get("set_timeout", "0")
 
 if configSetTimeout != "0":
     # Try setting the max individual test time in the configuration
-    config.maxIndividualTestTime = int(configSetTimeout)
+    lit_config.maxIndividualTestTime = int(configSetTimeout)
 
 config.test_format = lit.formats.ShTest(execute_external=externalShell)
 config.suffixes = [".py"]


        
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to