From 717b4373462dc139344db24e24a34dc7e93ee463 Mon Sep 17 00:00:00 2001 From: Rahul Joshi 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 c9d5baba3e2f4..9216eb223d149 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 ffeba6ebcb686..5485d2027b9fd 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 Num = a; diff --git a/llvm/utils/lit/lit/TestRunner.py b/llvm/utils/lit/lit/TestRunner.py index a1785073547ad..080a618572645 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 0000000000000..8b5b72a612cdc --- /dev/null +++ b/llvm/utils/lit/tests/substitutions.py @@ -0,0 +1,5 @@ +# Basic test for substitutions. +# +# RUN: echo %basename_s | FileCheck %s +# +# CHECK: substitutions.py