Author: dyung
Date: 2026-06-13T17:55:59-04:00
New Revision: a72232481fe7d87056dae9b89d8c2580323a9f39

URL: 
https://github.com/llvm/llvm-project/commit/a72232481fe7d87056dae9b89d8c2580323a9f39
DIFF: 
https://github.com/llvm/llvm-project/commit/a72232481fe7d87056dae9b89d8c2580323a9f39.diff

LOG: Update remaining tests for usage of CLANG_RESOURCE_DIR (#202475)

We would like to enable the clang CMake option CLANG_RESOURCE_DIR on our
build bots, but found that a few tests that need updating since they
make assumptions about compiler paths that are modified when using
CLANG_RESOURCE_DIR. This is the final change to update the remaining 3
test failures we found.

In the previous change (#197154), I added a definition for
`%clang-resource-dir` which contains the path printed by the compiler
when run with `-print-resource-dir`. We pass that value to the remaining
tests where needed through the RUN lines and use that to verify the
correct path rather than just trying to guess at it using a complex
regex.

One exception was a test which uses `-###` which escapes the backslashes
on Windows. For that test I just used tr+sed to escape the backslashes so
that the matching would work in that particular test only.

Added: 
    

Modified: 
    clang/test/Driver/hexagon-toolchain-picolibc.c
    clang/test/Driver/hip-include-path.hip
    clang/test/Preprocessor/iwithprefix.c

Removed: 
    


################################################################################
diff  --git a/clang/test/Driver/hexagon-toolchain-picolibc.c 
b/clang/test/Driver/hexagon-toolchain-picolibc.c
index 8282a4da81636..5d56ae8ff56ed 100644
--- a/clang/test/Driver/hexagon-toolchain-picolibc.c
+++ b/clang/test/Driver/hexagon-toolchain-picolibc.c
@@ -1,17 +1,21 @@
 // REQUIRES: hexagon-registered-target
 
+// Escape the value of clang-resource-dir if needed (mainly on Windows)
+// RUN: rm -rf %t && mkdir %t
+// RUN: echo %clang-resource-dir | tr -d '\n' | sed 's/\\/\\\\/g' > 
%t/resource-dir
+
 // 
-----------------------------------------------------------------------------
 // Test standard include paths
 // 
-----------------------------------------------------------------------------
 // RUN: %clang -### --target=hexagon-none-elf --cstdlib=picolibc \
-// RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin %s 2>&1 | 
FileCheck -check-prefix=CHECK-C-INCLUDES %s
-// CHECK-C-INCLUDES: "-cc1" {{.*}} "-internal-isystem" 
"{{.*}}{{/|\\\\}}lib{{/|\\\\}}clang{{/|\\\\}}{{[0-9]+}}{{/|\\\\}}include"
+// RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin %s 2>&1 | 
FileCheck -check-prefix=CHECK-C-INCLUDES 
-DRESOURCE_DIR="%{readfile:%t/resource-dir}" %s
+// CHECK-C-INCLUDES: "-cc1" {{.*}} "-internal-isystem" 
"[[RESOURCE_DIR]]{{/|\\\\}}include"
 // CHECK-C-INCLUDES: "-internal-externc-isystem" 
"{{.*}}{{/|\\\\}}Inputs{{/|\\\\}}hexagon_tree{{/|\\\\}}Tools{{/|\\\\}}bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}picolibc{{/|\\\\}}hexagon-unknown-none-elf{{/|\\\\}}include"
 
 // RUN: %clangxx -### --target=hexagon-none-elf --cstdlib=picolibc \
-// RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin %s 2>&1 | 
FileCheck -check-prefix=CHECK-CXX-INCLUDES %s
+// RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin %s 2>&1 | 
FileCheck -check-prefix=CHECK-CXX-INCLUDES 
-DRESOURCE_DIR="%{readfile:%t/resource-dir}" %s
 // CHECK-CXX-INCLUDES: "-cc1" {{.*}} "-internal-isystem" 
"{{.*}}{{/|\\\\}}Inputs{{/|\\\\}}hexagon_tree{{/|\\\\}}Tools{{/|\\\\}}bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}picolibc{{/|\\\\}}hexagon-unknown-none-elf{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}v1"
-// CHECK-CXX-INCLUDES: "-internal-isystem" 
"{{.*}}{{/|\\\\}}lib{{/|\\\\}}clang{{/|\\\\}}{{[0-9]+}}{{/|\\\\}}include"
+// CHECK-CXX-INCLUDES: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include"
 // CHECK-CXX-INCLUDES: "-internal-externc-isystem" 
"{{.*}}{{/|\\\\}}Inputs{{/|\\\\}}hexagon_tree{{/|\\\\}}Tools{{/|\\\\}}bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}picolibc{{/|\\\\}}hexagon-unknown-none-elf{{/|\\\\}}include"
 // 
-----------------------------------------------------------------------------
 // Passing start files for Picolibc
@@ -128,14 +132,14 @@
 // Test standard include paths for H2
 // 
-----------------------------------------------------------------------------
 // RUN: %clang -### --target=hexagon-h2-elf --cstdlib=picolibc \
-// RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin %s 2>&1 | 
FileCheck -check-prefix=CHECK-H2-C-INCLUDES %s
-// CHECK-H2-C-INCLUDES: "-cc1" {{.*}} "-internal-isystem" 
"{{.*}}{{/|\\\\}}lib{{/|\\\\}}clang{{/|\\\\}}{{[0-9]+}}{{/|\\\\}}include"
+// RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin %s 2>&1 | 
FileCheck -check-prefix=CHECK-H2-C-INCLUDES 
-DRESOURCE_DIR="%{readfile:%t/resource-dir}" %s
+// CHECK-H2-C-INCLUDES: "-cc1" {{.*}} "-internal-isystem" 
"[[RESOURCE_DIR]]{{/|\\\\}}include"
 // CHECK-H2-C-INCLUDES: "-internal-externc-isystem" 
"{{.*}}{{/|\\\\}}Inputs{{/|\\\\}}hexagon_tree{{/|\\\\}}Tools{{/|\\\\}}bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}picolibc{{/|\\\\}}hexagon-unknown-h2-elf{{/|\\\\}}include"
 
 // RUN: %clangxx -### --target=hexagon-h2-elf --cstdlib=picolibc \
-// RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin %s 2>&1 | 
FileCheck -check-prefix=CHECK-H2-CXX-INCLUDES %s
+// RUN:   -ccc-install-dir %S/Inputs/hexagon_tree/Tools/bin %s 2>&1 | 
FileCheck -check-prefix=CHECK-H2-CXX-INCLUDES 
-DRESOURCE_DIR="%{readfile:%t/resource-dir}" %s
 // CHECK-H2-CXX-INCLUDES: "-cc1" {{.*}} "-internal-isystem" 
"{{.*}}{{/|\\\\}}Inputs{{/|\\\\}}hexagon_tree{{/|\\\\}}Tools{{/|\\\\}}bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}picolibc{{/|\\\\}}hexagon-unknown-h2-elf{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}v1"
-// CHECK-H2-CXX-INCLUDES: "-internal-isystem" 
"{{.*}}{{/|\\\\}}lib{{/|\\\\}}clang{{/|\\\\}}{{[0-9]+}}{{/|\\\\}}include"
+// CHECK-H2-CXX-INCLUDES: "-internal-isystem" 
"[[RESOURCE_DIR]]{{/|\\\\}}include"
 // CHECK-H2-CXX-INCLUDES: "-internal-externc-isystem" 
"{{.*}}{{/|\\\\}}Inputs{{/|\\\\}}hexagon_tree{{/|\\\\}}Tools{{/|\\\\}}bin{{/|\\\\}}..{{/|\\\\}}target{{/|\\\\}}picolibc{{/|\\\\}}hexagon-unknown-h2-elf{{/|\\\\}}include"
 
 // 
-----------------------------------------------------------------------------

diff  --git a/clang/test/Driver/hip-include-path.hip 
b/clang/test/Driver/hip-include-path.hip
index 3c7384ab98354..55acfc5e2b915 100644
--- a/clang/test/Driver/hip-include-path.hip
+++ b/clang/test/Driver/hip-include-path.hip
@@ -2,50 +2,50 @@
 
 // RUN: %clang -c -### --target=x86_64-unknown-linux-gnu 
--cuda-gpu-arch=gfx900 \
 // RUN:   -std=c++11 --rocm-path=%S/Inputs/rocm -nogpulib %s 2>&1 \
-// RUN:   | FileCheck -check-prefixes=COMMON,CLANG,HIP %s
+// RUN:   | FileCheck -check-prefixes=COMMON,CLANG,HIP 
-DRESOURCE_DIR=%clang-resource-dir %s
 
 // RUN: %clang -c -### --target=x86_64-unknown-linux-gnu 
--cuda-gpu-arch=gfx900 \
 // RUN:   -std=c++11 --rocm-path=%S/Inputs/rocm -nobuiltininc -nogpulib %s 
2>&1 \
-// RUN:   | FileCheck -check-prefixes=COMMON,NOCLANG,HIP %s
+// RUN:   | FileCheck -check-prefixes=COMMON,NOCLANG,HIP 
-DRESOURCE_DIR=%clang-resource-dir %s
 
 // RUN: %clang -c -### --target=x86_64-unknown-linux-gnu 
--cuda-gpu-arch=gfx900 \
 // RUN:   -std=c++11 --rocm-path=%S/Inputs/rocm -nogpuinc -nogpulib %s 2>&1 \
-// RUN:   | FileCheck -check-prefixes=COMMON,CLANG,NOHIP %s
+// RUN:   | FileCheck -check-prefixes=COMMON,CLANG,NOHIP 
-DRESOURCE_DIR=%clang-resource-dir %s
 
 // RUN: %clang -c -### --target=x86_64-unknown-linux-gnu 
--cuda-gpu-arch=gfx900 \
 // RUN:   -std=c++11 --rocm-path=%S/Inputs/rocm --no-offload-inc -nogpulib 
--offload-inc %s 2>&1 \
-// RUN:   | FileCheck -check-prefixes=COMMON,CLANG,HIP %s
+// RUN:   | FileCheck -check-prefixes=COMMON,CLANG,HIP 
-DRESOURCE_DIR=%clang-resource-dir %s
 
 // COMMON-LABEL: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
-// CLANG-SAME: "-internal-isystem" 
"{{[^"]*}}/lib{{[^"]*}}/clang/{{[^"]*}}/include/cuda_wrappers"
-// NOCLANG-NOT: "{{[^"]*}}/lib{{[^"]*}}/clang/{{[^"]*}}/include/cuda_wrappers"
+// CLANG-SAME: "-internal-isystem" "[[RESOURCE_DIR]]/include/cuda_wrappers"
+// NOCLANG-NOT: "[[RESOURCE_DIR]]/include/cuda_wrappers"
 // HIP-SAME: "-idirafter" "{{[^"]*}}Inputs/rocm/include"
 // HIP-SAME: "-include" "__clang_hip_runtime_wrapper.h"
 // NOHIP-NOT: "-include" "__clang_hip_runtime_wrapper.h"
 // skip check of standard C++ include path
-// CLANG-SAME: "-internal-isystem" 
"{{[^"]*}}/lib{{[^"]*}}/clang/{{[^"]*}}/include"
-// NOCLANG-NOT: "{{[^"]*}}/lib{{[^"]*}}/clang/{{[^"]*}}/include"
+// CLANG-SAME: "-internal-isystem" "[[RESOURCE_DIR]]/include"
+// NOCLANG-NOT: "[[RESOURCE_DIR]]/include"
 // NOHIP-NOT: "{{.*}}Inputs/rocm/include"
 
 // COMMON-LABEL: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
-// CLANG-SAME: "-internal-isystem" 
"{{[^"]*}}/lib{{[^"]*}}/clang/{{[^"]*}}/include/cuda_wrappers"
-// NOCLANG-NOT: "{{[^"]*}}/lib{{[^"]*}}/clang/{{[^"]*}}/include/cuda_wrappers"
+// CLANG-SAME: "-internal-isystem" "[[RESOURCE_DIR]]/include/cuda_wrappers"
+// NOCLANG-NOT: "[[RESOURCE_DIR]]/include/cuda_wrappers"
 // HIP-SAME: "-idirafter" "{{[^"]*}}Inputs/rocm/include"
 // HIP-SAME: "-include" "__clang_hip_runtime_wrapper.h"
 // NOHIP-NOT: "-include" "__clang_hip_runtime_wrapper.h"
 // skip check of standard C++ include path
-// CLANG-SAME: "-internal-isystem" 
"{{[^"]*}}/lib{{[^"]*}}/clang/{{[^"]*}}/include"
-// NOCLANG-NOT: "{{[^"]*}}/lib{{[^"]*}}/clang/{{[^"]*}}/include"
+// CLANG-SAME: "-internal-isystem" "[[RESOURCE_DIR]]/include"
+// NOCLANG-NOT: "[[RESOURCE_DIR]]/include"
 // NOHIP-NOT: "{{.*}}Inputs/rocm/include"
 
 // RUN: %clang -c -### --target=x86_64-unknown-linux-gnu 
--cuda-gpu-arch=gfx900 \
 // RUN:   -std=c++11 --rocm-path=%S/Inputs/rocm -nogpulib %s 2>&1 \
-// RUN:   --hip-version=3.5 | FileCheck -check-prefixes=ROCM35 %s
+// RUN:   --hip-version=3.5 | FileCheck -check-prefixes=ROCM35 
-DRESOURCE_DIR=%clang-resource-dir %s
 
 // ROCM35-LABEL: "{{[^"]*}}clang{{[^"]*}}" "-cc1"
-// ROCM35-NOT: "{{[^"]*}}/lib{{[^"]*}}/clang/{{[^"]*}}/include/cuda_wrappers"
-// ROCM35-SAME: "-internal-isystem" "{{[^"]*}}/lib{{[^"]*}}/clang/{{[^"]*}}"
+// ROCM35-NOT: "[[RESOURCE_DIR]]/include/cuda_wrappers"
+// ROCM35-SAME: "-internal-isystem" "[[RESOURCE_DIR]]"
 // ROCM35-SAME: "-idirafter" "{{[^"]*}}Inputs/rocm/include"
 // ROCM35-NOT: "-include" "__clang_hip_runtime_wrapper.h"
 // skip check of standard C++ include path
-// ROCM35-SAME: "-internal-isystem" 
"{{[^"]*}}/lib{{[^"]*}}/clang/{{[^"]*}}/include"
+// ROCM35-SAME: "-internal-isystem" "[[RESOURCE_DIR]]/include"

diff  --git a/clang/test/Preprocessor/iwithprefix.c 
b/clang/test/Preprocessor/iwithprefix.c
index 70d2abcd374ca..9c3d565785aed 100644
--- a/clang/test/Preprocessor/iwithprefix.c
+++ b/clang/test/Preprocessor/iwithprefix.c
@@ -5,10 +5,10 @@
 // RUN: %clang_cc1 -triple x86_64-unknown-unknown \
 // RUN:   -iprefix %t.tmps/ -iwithprefix second \
 // RUN:    -isystem %t.tmps/first -v %s 2> %t.out
-// RUN: FileCheck %s < %t.out
+// RUN: FileCheck %s -DRESOURCE_DIR=%clang-resource-dir < %t.out
 
 // CHECK: #include <...> search starts here:
 // CHECK: {{.*}}.tmps/first
-// CHECK: {{/|\\}}clang{{/|\\}}{{[.0-9]+}}{{/|\\}}include
+// CHECK: [[RESOURCE_DIR]]{{/|\\}}include
 // CHECK: {{.*}}.tmps/second
 // CHECK-NOT: {{.*}}.tmps


        
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to