[llvm-branch-commits] [lldb] bcb555d - Revert "[lit] Move maxIndividualTestTime from global to test suite config (#1…"
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Tue May 26 23:29:47 PDT 2026
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"]
More information about the llvm-branch-commits
mailing list