[clang] Updating tests for usage of CLANG_RESOURCE_DIR (clang/test/Driver/driverkit-path.c) (1/4) (PR #197154)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Jun 3 22:26:02 PDT 2026
https://github.com/dyung updated https://github.com/llvm/llvm-project/pull/197154
>From 1ff37d2de78338e1e5a0403aff645ce2c4e2a066 Mon Sep 17 00:00:00 2001
From: Douglas Yung <douglas.yung at sony.com>
Date: Sun, 10 May 2026 10:24:59 -0700
Subject: [PATCH 1/4] Fix test clang/test/Driver/driverkit-path.c when using
CLANG_RESOURCE_DIR.
---
clang/test/Driver/driverkit-path.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/clang/test/Driver/driverkit-path.c b/clang/test/Driver/driverkit-path.c
index bc96201753165..aa7d7244fab33 100644
--- a/clang/test/Driver/driverkit-path.c
+++ b/clang/test/Driver/driverkit-path.c
@@ -33,7 +33,7 @@ int main() { return 0; }
//
// INC: "-isysroot" "[[SDKROOT]]"
// INC: "-internal-isystem" "[[SDKROOT]]/System/DriverKit/usr/local/include"
-// INC: "-internal-isystem" "{{.+}}/lib{{(64)?}}/clang/{{[^/ ]+}}/include"
+// INC: "-internal-isystem" "{{.+}}/lib{{(64)?}}/clang{{/?[^"]*}}/include"
// INC: "-internal-externc-isystem" "[[SDKROOT]]/System/DriverKit/usr/include"
// INC: "-internal-iframework" "[[SDKROOT]]/System/DriverKit/System/Library/Frameworks"
// INC: "-internal-iframework" "[[SDKROOT]]/System/DriverKit/System/Library/SubFrameworks"
>From c6446b0eb2f686e7d8cef0ce9c4accd70543b9a2 Mon Sep 17 00:00:00 2001
From: Douglas Yung <douglas.yung at sony.com>
Date: Wed, 13 May 2026 23:06:28 -1000
Subject: [PATCH 2/4] Change to using -print-resource-dir to check for the
resource directory instead of guessing at it using a regex.
---
clang/test/Driver/driverkit-path.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/clang/test/Driver/driverkit-path.c b/clang/test/Driver/driverkit-path.c
index aa7d7244fab33..5ac5e3a0d4c34 100644
--- a/clang/test/Driver/driverkit-path.c
+++ b/clang/test/Driver/driverkit-path.c
@@ -1,6 +1,10 @@
// UNSUPPORTED: system-windows
// Windows is unsupported because we use the Unix path separator `\`.
+// Determine the resource directory used by the compiler so we do not have to guess at it
+// RUN: rm -rf %t && mkdir %t
+// RUN: %clang -print-resource-dir | tr -d '\n' > %t/resource-dir
+
// RUN: %clang %s -target x86_64-apple-driverkit19.0 -mlinker-version=0 \
// RUN: -isysroot %S/Inputs/DriverKit19.0.sdk -### 2>&1 \
// RUN: | FileCheck %s --check-prefix=LD64-OLD
@@ -25,15 +29,15 @@ int main() { return 0; }
// RUN: %clang %s -target x86_64-apple-driverkit19.0 -isysroot %S/Inputs/DriverKit19.0.sdk -x c++ -### 2>&1 \
-// RUN: | FileCheck %s -DSDKROOT=%S/Inputs/DriverKit19.0.sdk --check-prefix=INC
+// RUN: | FileCheck %s -DSDKROOT=%S/Inputs/DriverKit19.0.sdk -DRESOURCE_DIR="%{readfile:%t/resource-dir}" --check-prefix=INC
// RUN: %clang %s -target x86_64-apple-driverkit21.0.1 -isysroot %S/Inputs/DriverKit21.0.1.sdk -x c++ -### 2>&1 \
-// RUN: | FileCheck %s -DSDKROOT=%S/Inputs/DriverKit21.0.1.sdk --check-prefix=INC
+// RUN: | FileCheck %s -DSDKROOT=%S/Inputs/DriverKit21.0.1.sdk -DRESOURCE_DIR="%{readfile:%t/resource-dir}" --check-prefix=INC
// RUN: %clang %s -target x86_64-apple-driverkit23.0 -isysroot %S/Inputs/DriverKit23.0.sdk -x c++ -### 2>&1 \
-// RUN: | FileCheck %s -DSDKROOT=%S/Inputs/DriverKit23.0.sdk --check-prefix=INC
+// RUN: | FileCheck %s -DSDKROOT=%S/Inputs/DriverKit23.0.sdk -DRESOURCE_DIR="%{readfile:%t/resource-dir}" --check-prefix=INC
//
// INC: "-isysroot" "[[SDKROOT]]"
// INC: "-internal-isystem" "[[SDKROOT]]/System/DriverKit/usr/local/include"
-// INC: "-internal-isystem" "{{.+}}/lib{{(64)?}}/clang{{/?[^"]*}}/include"
+// INC: "-internal-isystem" "[[RESOURCE_DIR]]/include"
// INC: "-internal-externc-isystem" "[[SDKROOT]]/System/DriverKit/usr/include"
// INC: "-internal-iframework" "[[SDKROOT]]/System/DriverKit/System/Library/Frameworks"
// INC: "-internal-iframework" "[[SDKROOT]]/System/DriverKit/System/Library/SubFrameworks"
>From f46d2f57c2f2f8ab0f7884e24db96a711a75a928 Mon Sep 17 00:00:00 2001
From: Douglas Yung <douglas.yung at sony.com>
Date: Wed, 3 Jun 2026 15:28:40 -0700
Subject: [PATCH 3/4] Move determination of resource directory to lit.cfg.py.
---
clang/test/Driver/driverkit-path.c | 10 +++-------
clang/test/lit.cfg.py | 13 +++++++++++++
2 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/clang/test/Driver/driverkit-path.c b/clang/test/Driver/driverkit-path.c
index 5ac5e3a0d4c34..a2fa06f47ea2e 100644
--- a/clang/test/Driver/driverkit-path.c
+++ b/clang/test/Driver/driverkit-path.c
@@ -1,10 +1,6 @@
// UNSUPPORTED: system-windows
// Windows is unsupported because we use the Unix path separator `\`.
-// Determine the resource directory used by the compiler so we do not have to guess at it
-// RUN: rm -rf %t && mkdir %t
-// RUN: %clang -print-resource-dir | tr -d '\n' > %t/resource-dir
-
// RUN: %clang %s -target x86_64-apple-driverkit19.0 -mlinker-version=0 \
// RUN: -isysroot %S/Inputs/DriverKit19.0.sdk -### 2>&1 \
// RUN: | FileCheck %s --check-prefix=LD64-OLD
@@ -29,11 +25,11 @@ int main() { return 0; }
// RUN: %clang %s -target x86_64-apple-driverkit19.0 -isysroot %S/Inputs/DriverKit19.0.sdk -x c++ -### 2>&1 \
-// RUN: | FileCheck %s -DSDKROOT=%S/Inputs/DriverKit19.0.sdk -DRESOURCE_DIR="%{readfile:%t/resource-dir}" --check-prefix=INC
+// RUN: | FileCheck %s -DSDKROOT=%S/Inputs/DriverKit19.0.sdk -DRESOURCE_DIR=%clang-resource-dir --check-prefix=INC
// RUN: %clang %s -target x86_64-apple-driverkit21.0.1 -isysroot %S/Inputs/DriverKit21.0.1.sdk -x c++ -### 2>&1 \
-// RUN: | FileCheck %s -DSDKROOT=%S/Inputs/DriverKit21.0.1.sdk -DRESOURCE_DIR="%{readfile:%t/resource-dir}" --check-prefix=INC
+// RUN: | FileCheck %s -DSDKROOT=%S/Inputs/DriverKit21.0.1.sdk -DRESOURCE_DIR=%clang-resource-dir --check-prefix=INC
// RUN: %clang %s -target x86_64-apple-driverkit23.0 -isysroot %S/Inputs/DriverKit23.0.sdk -x c++ -### 2>&1 \
-// RUN: | FileCheck %s -DSDKROOT=%S/Inputs/DriverKit23.0.sdk -DRESOURCE_DIR="%{readfile:%t/resource-dir}" --check-prefix=INC
+// RUN: | FileCheck %s -DSDKROOT=%S/Inputs/DriverKit23.0.sdk -DRESOURCE_DIR=%clang-resource-dir --check-prefix=INC
//
// INC: "-isysroot" "[[SDKROOT]]"
// INC: "-internal-isystem" "[[SDKROOT]]/System/DriverKit/usr/local/include"
diff --git a/clang/test/lit.cfg.py b/clang/test/lit.cfg.py
index 4a00769469543..61fd04bf5e1c3 100644
--- a/clang/test/lit.cfg.py
+++ b/clang/test/lit.cfg.py
@@ -200,6 +200,19 @@ def run_clang_repl(args):
return clang_repl_out
+# Add clang resource directory as a substitution
+if config.clang:
+ try:
+ clang_exe_cmd = subprocess.Popen(
+ [config.clang, "-print-resource-dir"], stdout=subprocess.PIPE
+ )
+ except OSError:
+ print("could not exec clang")
+
+ clang_resource_dir = clang_exe_cmd.stdout.read().decode("ascii")
+ clang_exe_cmd.wait()
+
+ config.substitutions.append(("%clang-resource-dir", clang_resource_dir.strip()))
def have_host_jit_feature_support(feature_name):
return "true" in run_clang_repl("--host-supports-" + feature_name)
>From ec44bd742579a2e488683a551e3fde6a61164a3d Mon Sep 17 00:00:00 2001
From: Douglas Yung <douglas.yung at sony.com>
Date: Wed, 3 Jun 2026 22:25:09 -0700
Subject: [PATCH 4/4] Move location where clang resource directory is set.
---
clang/test/lit.cfg.py | 27 ++++++++++++++-------------
1 file changed, 14 insertions(+), 13 deletions(-)
diff --git a/clang/test/lit.cfg.py b/clang/test/lit.cfg.py
index 61fd04bf5e1c3..bde9ebc72f8e2 100644
--- a/clang/test/lit.cfg.py
+++ b/clang/test/lit.cfg.py
@@ -200,19 +200,6 @@ def run_clang_repl(args):
return clang_repl_out
-# Add clang resource directory as a substitution
-if config.clang:
- try:
- clang_exe_cmd = subprocess.Popen(
- [config.clang, "-print-resource-dir"], stdout=subprocess.PIPE
- )
- except OSError:
- print("could not exec clang")
-
- clang_resource_dir = clang_exe_cmd.stdout.read().decode("ascii")
- clang_exe_cmd.wait()
-
- config.substitutions.append(("%clang-resource-dir", clang_resource_dir.strip()))
def have_host_jit_feature_support(feature_name):
return "true" in run_clang_repl("--host-supports-" + feature_name)
@@ -425,6 +412,20 @@ def calculate_arch_features(arch_string):
if config.enable_threads:
config.available_features.add("thread_support")
+# Add clang resource directory as a substitution
+if config.clang:
+ try:
+ clang_exe_cmd = subprocess.Popen(
+ [config.clang, "-print-resource-dir"], stdout=subprocess.PIPE
+ )
+ except OSError:
+ print("could not exec clang")
+
+ clang_resource_dir = clang_exe_cmd.stdout.read().decode("ascii")
+ clang_exe_cmd.wait()
+
+ config.substitutions.append(("%clang-resource-dir", clang_resource_dir.strip()))
+
# Check if we should allow outputs to console.
run_console_tests = int(lit_config.params.get("enable_console", "0"))
if run_console_tests != 0:
More information about the cfe-commits
mailing list