[llvm] [LIT] Add support for `%basename_s` to get base name of source file (PR #110993)

Rahul Joshi via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 3 09:23:21 PDT 2024


https://github.com/jurahul updated https://github.com/llvm/llvm-project/pull/110993

>From fbfc33bb00b49a4fdb02115c521d2849c6e9b2b2 Mon Sep 17 00:00:00 2001
From: Rahul Joshi <rjoshi at nvidia.com>
Date: Thu, 3 Oct 2024 06:21:53 -0700
Subject: [PATCH] [LIT] Add support for `%basename_s` to get base name of
 source file

Add support for `%basename_s` pattern in the RUN commands to get the
base name of the source file, and adopt it in a TableGen LIT test.
---
 llvm/docs/CommandGuide/lit.rst           | 1 +
 llvm/test/TableGen/anonymous-location.td | 2 +-
 llvm/utils/lit/lit/TestRunner.py         | 6 ++++--
 llvm/utils/lit/tests/substitutions.py    | 5 +++++
 4 files changed, 11 insertions(+), 3 deletions(-)
 create mode 100644 llvm/utils/lit/tests/substitutions.py

diff --git a/llvm/docs/CommandGuide/lit.rst b/llvm/docs/CommandGuide/lit.rst
index c9d5baba3e2f49..9216eb223d1491 100644
--- a/llvm/docs/CommandGuide/lit.rst
+++ b/llvm/docs/CommandGuide/lit.rst
@@ -535,6 +535,7 @@ TestRunner.py:
  %{fs-tmp-root}          root component of file system paths pointing to the test's temporary directory
  %{fs-sep}               file system path separator
  %t                      temporary file name unique to the test
+ %basename_s             The last path component of %s
  %basename_t             The last path component of %t but without the ``.tmp`` extension
  %T                      parent directory of %t (not unique, deprecated, do not use)
  %%                      %
diff --git a/llvm/test/TableGen/anonymous-location.td b/llvm/test/TableGen/anonymous-location.td
index ffeba6ebcb686f..5485d2027b9fd0 100644
--- a/llvm/test/TableGen/anonymous-location.td
+++ b/llvm/test/TableGen/anonymous-location.td
@@ -1,4 +1,4 @@
-// RUN: llvm-tblgen --print-detailed-records %s | FileCheck %s -DFILE=anonymous-location.td
+// RUN: llvm-tblgen --print-detailed-records %s | FileCheck %s -DFILE=%basename_s
 
 class A<int a> {
   int Num = a;
diff --git a/llvm/utils/lit/lit/TestRunner.py b/llvm/utils/lit/lit/TestRunner.py
index a1785073547ad0..080a618572645d 100644
--- a/llvm/utils/lit/lit/TestRunner.py
+++ b/llvm/utils/lit/lit/TestRunner.py
@@ -1394,10 +1394,12 @@ def getDefaultSubstitutions(test, tmpDir, tmpBase, normalize_slashes=False):
     substitutions = []
     substitutions.extend(test.config.substitutions)
     tmpName = tmpBase + ".tmp"
-    baseName = os.path.basename(tmpBase)
+    tmpBaseName = os.path.basename(tmpBase)
+    sourceBaseName = os.path.basename(sourcepath)
 
     substitutions.append(("%{pathsep}", os.pathsep))
-    substitutions.append(("%basename_t", baseName))
+    substitutions.append(("%basename_t", tmpBaseName))
+    substitutions.append(("%basename_s", sourceBaseName))
 
     substitutions.extend(
         [
diff --git a/llvm/utils/lit/tests/substitutions.py b/llvm/utils/lit/tests/substitutions.py
new file mode 100644
index 00000000000000..e97cab36021296
--- /dev/null
+++ b/llvm/utils/lit/tests/substitutions.py
@@ -0,0 +1,5 @@
+# Basic test for substitutions.
+#
+# RUN: echo %basename_s  | FileCheck %s --check-prefix=BASENAME
+#
+# BASENAME: substitutions.py



More information about the llvm-commits mailing list