Skip to content

Conversation

@boomanaiden154
Copy link
Contributor

@boomanaiden154 boomanaiden154 commented Sep 2, 2025

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.

Created using spr 1.3.6

[skip ci]
Created using spr 1.3.6
@llvmbot llvmbot added the lld label Sep 3, 2025
@llvmbot
Copy link
Member

llvmbot commented Sep 3, 2025

@llvm/pr-subscribers-lld-macho

@llvm/pr-subscribers-lld

Author: Aiden Grossman (boomanaiden154)

Changes

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.


Full diff: https://github.com/llvm/llvm-project/pull/156538.diff

1 Files Affected:

  • (modified) lld/test/lit.cfg.py (+12-1)
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"]

Created using spr 1.3.6

[skip ci]
Created using spr 1.3.6
Created using spr 1.3.6

[skip ci]
Created using spr 1.3.6
boomanaiden154 added a commit to boomanaiden154/llvm-project that referenced this pull request Sep 3, 2025
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.

Pull Request: llvm#156538
Created using spr 1.3.6
@boomanaiden154 boomanaiden154 changed the base branch from users/boomanaiden154/main.lld-make-lld-tests-use-lit-internal-shell-by-default to main September 3, 2025 17:18
@boomanaiden154 boomanaiden154 merged commit 714f6b0 into main Sep 3, 2025
10 checks passed
@boomanaiden154 boomanaiden154 deleted the users/boomanaiden154/lld-make-lld-tests-use-lit-internal-shell-by-default branch September 3, 2025 17:18
llvm-sync bot pushed a commit to arm/arm-toolchain that referenced this pull request Sep 3, 2025
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: llvm/llvm-project#156538
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[lld][llvm-lit] Enable internal shell for lld test suite

6 participants