[llvm] 7ff6973 - [lit] Remove support for %T
via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 26 19:06:13 PDT 2025
Author: Aiden Grossman
Date: 2025-09-26T19:06:09-07:00
New Revision: 7ff6973f1ae91985bb6b5faa8658e81dbaadbd25
URL: https://github.com/llvm/llvm-project/commit/7ff6973f1ae91985bb6b5faa8658e81dbaadbd25
DIFF: https://github.com/llvm/llvm-project/commit/7ff6973f1ae91985bb6b5faa8658e81dbaadbd25.diff
LOG: [lit] Remove support for %T
This patch removes support for %T from llvm-lit. For now we mark the
test unresolved and add an error message noting the substitution is
deprecated. This is exactly the same as the error handling for other
substitution failures. We intend to remove support for the nice error
message once 22 branches as users should have moved over by the they are
upgrading to v23.
Reviewers: petrhosek, jh7370, ilovepi, pogo59, cmtice
Reviewed By: cmtice, jh7370, ilovepi
Pull Request: https://github.com/llvm/llvm-project/pull/160028
Added:
llvm/utils/lit/tests/Inputs/shtest-shell/capital-t-error-message.txt
Modified:
llvm/docs/CommandGuide/lit.rst
llvm/docs/ReleaseNotes.md
llvm/utils/lit/lit/TestRunner.py
llvm/utils/lit/tests/shtest-shell.py
Removed:
################################################################################
diff --git a/llvm/docs/CommandGuide/lit.rst b/llvm/docs/CommandGuide/lit.rst
index 359e0c3e81d0e..6a721ebf9cad0 100644
--- a/llvm/docs/CommandGuide/lit.rst
+++ b/llvm/docs/CommandGuide/lit.rst
@@ -630,13 +630,11 @@ TestRunner.py:
%{fs-sep} file system path separator
%t temporary file name unique to the test
%basename_t The last path component of %t but without the ``.tmp`` extension (deprecated, use ``%{t:stem}`` instead)
- %T parent directory of %t (not unique, deprecated, do not use)
%% %
%/s %s but ``\`` is replaced by ``/``
%/S %S but ``\`` is replaced by ``/``
%/p %p but ``\`` is replaced by ``/``
%/t %t but ``\`` is replaced by ``/``
- %/T %T but ``\`` is replaced by ``/``
%{s:basename} The last path component of %s
%{t:stem} The last path component of %t but without the ``.tmp`` extension (alias for %basename_t)
%{s:real} %s after expanding all symbolic links and substitute drives
@@ -648,12 +646,10 @@ TestRunner.py:
%{/S:real} %/S after expanding all symbolic links and substitute drives
%{/p:real} %/p after expanding all symbolic links and substitute drives
%{/t:real} %/t after expanding all symbolic links and substitute drives
- %{/T:real} %/T after expanding all symbolic links and substitute drives
%{/s:regex_replacement} %/s but escaped for use in the replacement of a ``s@@@`` command in sed
%{/S:regex_replacement} %/S but escaped for use in the replacement of a ``s@@@`` command in sed
%{/p:regex_replacement} %/p but escaped for use in the replacement of a ``s@@@`` command in sed
%{/t:regex_replacement} %/t but escaped for use in the replacement of a ``s@@@`` command in sed
- %{/T:regex_replacement} %/T but escaped for use in the replacement of a ``s@@@`` command in sed
%:s On Windows, %/s but a ``:`` is removed if its the second character.
Otherwise, %s but with a single leading ``/`` removed.
%:S On Windows, %/S but a ``:`` is removed if its the second character.
@@ -662,8 +658,6 @@ TestRunner.py:
Otherwise, %p but with a single leading ``/`` removed.
%:t On Windows, %/t but a ``:`` is removed if its the second character.
Otherwise, %t but with a single leading ``/`` removed.
- %:T On Windows, %/T but a ``:`` is removed if its the second character.
- Otherwise, %T but with a single leading ``/`` removed.
%{readfile:<filename>} Reads the file specified.
======================= ==============
diff --git a/llvm/docs/ReleaseNotes.md b/llvm/docs/ReleaseNotes.md
index 40cddb45df84d..85c16b9c33f10 100644
--- a/llvm/docs/ReleaseNotes.md
+++ b/llvm/docs/ReleaseNotes.md
@@ -160,6 +160,7 @@ Changes to the LLVM tools
* `llvm-readelf` now dumps all hex format values in lower-case mode.
* Some code paths for supporting Python 2.7 in `llvm-lit` have been removed.
+* Support for `%T` in lit has been removed.
Changes to LLDB
---------------------------------
diff --git a/llvm/utils/lit/lit/TestRunner.py b/llvm/utils/lit/lit/TestRunner.py
index 9ae8ac75bee08..a7e2705f609af 100644
--- a/llvm/utils/lit/lit/TestRunner.py
+++ b/llvm/utils/lit/lit/TestRunner.py
@@ -1541,8 +1541,10 @@ def regex_escape(s):
return s
path_substitutions = [
- ("s", sourcepath), ("S", sourcedir), ("p", sourcedir),
- ("t", tmpName), ("T", tmpDir)
+ ("s", sourcepath),
+ ("S", sourcedir),
+ ("p", sourcedir),
+ ("t", tmpName),
]
for path_substitution in path_substitutions:
letter = path_substitution[0]
@@ -1919,6 +1921,14 @@ def processLine(ln):
# seems reasonable.
ln = _caching_re_compile(a).sub(str(b), escapePercents(ln))
+ # TODO(boomanaiden154): Remove when we branch LLVM 22 so people on the
+ # release branch will have sufficient time to migrate.
+ if bool(_caching_re_compile("%T").search(ln)):
+ raise ValueError(
+ "%T is no longer supported. Please create directories with names "
+ "based on %t."
+ )
+
# Strip the trailing newline and any extra whitespace.
return ln.strip()
diff --git a/llvm/utils/lit/tests/Inputs/shtest-shell/capital-t-error-message.txt b/llvm/utils/lit/tests/Inputs/shtest-shell/capital-t-error-message.txt
new file mode 100644
index 0000000000000..e69dfee8fced8
--- /dev/null
+++ b/llvm/utils/lit/tests/Inputs/shtest-shell/capital-t-error-message.txt
@@ -0,0 +1,2 @@
+# Check that we return a decent error message when someone uses %T
+# RUN: echo %T > %t
diff --git a/llvm/utils/lit/tests/shtest-shell.py b/llvm/utils/lit/tests/shtest-shell.py
index 498f6bb0adc11..38db1b75486cf 100644
--- a/llvm/utils/lit/tests/shtest-shell.py
+++ b/llvm/utils/lit/tests/shtest-shell.py
@@ -12,6 +12,10 @@
# CHECK: -- Testing:
+# CHECK: UNRESOLVED: shtest-shell :: capital-t-error-message.txt
+# CHECK: *** TEST 'shtest-shell :: capital-t-error-message.txt' FAILED ***
+# CHECK: ValueError: %T is no longer supported. Please create directories with names based on %t.
+
# CHECK: FAIL: shtest-shell :: colon-error.txt
# CHECK: *** TEST 'shtest-shell :: colon-error.txt' FAILED ***
# CHECK: :
@@ -633,5 +637,5 @@
# CHECK: ***
# CHECK: PASS: shtest-shell :: valid-shell.txt
-# CHECK: Unresolved Tests (1)
+# CHECK: Unresolved Tests (2)
# CHECK: Failed Tests (37)
More information about the llvm-commits
mailing list