[lld] [lld][llvm-lit] Enabled lit internal shell for lld test suite (PR #106651)
Connie Zhu via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 29 18:28:34 PDT 2024
https://github.com/connieyzhu created https://github.com/llvm/llvm-project/pull/106651
This patch sets lit's internal shell to be the default shell when running lld tests. Tests that `REQUIRES: shell` are not currently supported by the internal shell, so those tests are skipped with this implementation.
Resolves https://github.com/llvm/llvm-project/issues/102700.
>From 9526336ceaeae11a7980653033cd4122c54397b6 Mon Sep 17 00:00:00 2001
From: Connie Zhu <connieyzhu at google.com>
Date: Thu, 29 Aug 2024 05:49:45 +0000
Subject: [PATCH] [lld][llvm-lit] Enabled lit internal shell for lld test suite
This patch sets lit's internal shell to be the default shell when
running lld tests. Tests that REQUIRES: shell are not currently
supported by the internal shell, so those tests are skipped with this
implementation.
---
lld/test/lit.cfg.py | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/lld/test/lit.cfg.py b/lld/test/lit.cfg.py
index d309c2ad4ee284..fd9afd4fb65894 100644
--- a/lld/test/lit.cfg.py
+++ b/lld/test/lit.cfg.py
@@ -19,7 +19,18 @@
# testFormat: The test format to use to interpret tests.
#
# For now we require '&&' between commands, until they get globally killed and the test runner updated.
-config.test_format = lit.formats.ShTest(not llvm_config.use_lit_shell)
+# We prefer the lit internal shell which provides a better user experience on failures
+# unless the user explicitly disables it with LIT_USE_INTERNAL_SHELL=0 env var.
+use_lit_shell = True
+lit_shell_env = os.environ.get("LIT_USE_INTERNAL_SHELL")
+if lit_shell_env:
+ use_lit_shell = lit.util.pythonize_bool(lit_shell_env)
+
+config.test_format = lit.formats.ShTest(execute_external=not use_lit_shell)
+
+# TODO: Tests that REQUIRES: shell are unsupported by the lit internal shell
+if use_lit_shell:
+ config.available_features.discard("shell")
# suffixes: A list of file extensions to treat as test files.
config.suffixes = [".ll", ".s", ".test", ".yaml", ".objtxt"]
More information about the llvm-commits
mailing list