[lld] 714f6b0 - [lld] Make lld tests use lit internal shell by default
via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 3 10:18:47 PDT 2025
Author: Aiden Grossman
Date: 2025-09-03T10:18:44-07:00
New Revision: 714f6b03bc89bff766ae628092cd059fd8aa0aa1
URL: https://github.com/llvm/llvm-project/commit/714f6b03bc89bff766ae628092cd059fd8aa0aa1
DIFF: https://github.com/llvm/llvm-project/commit/714f6b03bc89bff766ae628092cd059fd8aa0aa1.diff
LOG: [lld] Make lld tests use lit internal shell by default
This patch updates the lld lit test config to use the internal shell by
default. This has some performance advantages (~10-15%) and also
produces nicer failure output. This should have no impact on test
coverage now that all tests previously requiring a shell have been
ported over to work with the internal shell.
Fixes #102700.
Reviewers: MaskRay, petrhosek, cmtice, mysterymath, ilovepi
Reviewed By: MaskRay, petrhosek, cmtice
Pull Request: https://github.com/llvm/llvm-project/pull/156538
Added:
Modified:
lld/test/MachO/objc-category-merging-minimal.s
lld/test/lit.cfg.py
Removed:
################################################################################
diff --git a/lld/test/MachO/objc-category-merging-minimal.s b/lld/test/MachO/objc-category-merging-minimal.s
index d4d5933aa5ec8..4de8fc94c1612 100644
--- a/lld/test/MachO/objc-category-merging-minimal.s
+++ b/lld/test/MachO/objc-category-merging-minimal.s
@@ -33,7 +33,7 @@
############ Test merging skipped due to invalid category name ############
# Modify __OBJC_$_CATEGORY_MyBaseClass_$_Category01's name to point to L_OBJC_IMAGE_INFO+3
-# RUN: awk '/^__OBJC_\$_CATEGORY_MyBaseClass_\$_Category01:/ { print; getline; sub(/^[ \t]*\.quad[ \t]+l_OBJC_CLASS_NAME_$/, "\t.quad\tL_OBJC_IMAGE_INFO+3"); print; next } { print }' merge_cat_minimal.s > merge_cat_minimal_bad_name.s
+# RUN: awk '/^__OBJC_\\$_CATEGORY_MyBaseClass_\\$_Category01:/ { print; getline; sub(/^[ \t]*\.quad[ \t]+l_OBJC_CLASS_NAME_$/, "\t.quad\tL_OBJC_IMAGE_INFO+3"); print; next } { print }' merge_cat_minimal.s > merge_cat_minimal_bad_name.s
# Assemble the modified source
# RUN: llvm-mc -filetype=obj -triple=arm64-apple-macos -o merge_cat_minimal_bad_name.o merge_cat_minimal_bad_name.s
diff --git a/lld/test/lit.cfg.py b/lld/test/lit.cfg.py
index 10f556567cdc8..336945729954e 100644
--- a/lld/test/lit.cfg.py
+++ b/lld/test/lit.cfg.py
@@ -16,10 +16,21 @@
# name: The name of this test suite.
config.name = "lld"
+# TODO: Consolidate the logic for turning on the internal shell by default for all LLVM test suites.
+# See https://github.com/llvm/llvm-project/issues/106636 for more details.
+#
+# We prefer the lit internal shell which provides a better user experience on failures
+# and is faster 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)
+
# 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)
+config.test_format = lit.formats.ShTest(execute_external=not use_lit_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