[llvm] 2740e4b - [clang] Remove shell requirements from tests

via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 11 17:51:52 PDT 2025


Author: Aiden Grossman
Date: 2025-09-11T17:51:47-07:00
New Revision: 2740e4b73682eb7a6869c333991a608304938952

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

LOG: [clang] Remove shell requirements from tests

Most of these tests do not actually have a shell requirement. The shell
requirement ended up in the test either from cargo culting (from what I
can tell) or because the test authors actually meant to mark Windows as
unsupported. This prevents enablement of lit's internal shell within
clang.

Towards #102699.

Reviewers: rnk, efriedma-quic, Sirraide, petrhosek, ilovepi

Reviewed By: ilovepi

Pull Request: https://github.com/llvm/llvm-project/pull/156905

Added: 
    

Modified: 
    clang/test/Analysis/scan-build/cxx-name.test
    clang/test/Analysis/scan-build/deduplication.test
    clang/test/Analysis/scan-build/html_output.test
    clang/test/Analysis/scan-build/plist_html_output.test
    clang/test/Analysis/scan-build/plist_output.test
    clang/test/ClangScanDeps/module-format.c
    clang/test/ClangScanDeps/modules-context-hash-cwd.c
    clang/test/ClangScanDeps/modules-file-path-isolation.c
    clang/test/ClangScanDeps/modules-in-stable-dirs.c
    clang/test/ClangScanDeps/modules-symlink-dir-from-module.c
    clang/test/ClangScanDeps/modules-symlink-dir-vfs.c
    clang/test/ClangScanDeps/modules-symlink-dir.c
    clang/test/ClangScanDeps/prebuilt-modules-in-stable-dirs.c
    clang/test/ClangScanDeps/subframework_header_dir_symlink.m
    clang/test/ClangScanDeps/symlink.cpp
    clang/test/CodeCompletion/included-symlinks.cpp
    clang/test/Driver/aarch64-toolchain-extra.c
    clang/test/Driver/amdgpu-hip-system-arch.c
    clang/test/Driver/amdgpu-openmp-system-arch-fail.c
    clang/test/Driver/arm-toolchain-extra.c
    clang/test/Driver/baremetal-multilib-layered.yaml
    clang/test/Driver/baremetal-multilib.yaml
    clang/test/Driver/baremetal-sysroot.cpp
    clang/test/Driver/darwin-ld-demangle-lld.c
    clang/test/Driver/darwin-ld-lto-lld.c
    clang/test/Driver/mingw-sysroot.cpp
    clang/test/Driver/no-canonical-prefixes.c
    clang/test/Driver/nvptx-cuda-system-arch.c
    clang/test/Driver/openmp-system-arch.c
    clang/test/Driver/parse-progname.c
    clang/test/Driver/riscv32-toolchain-extra.c
    clang/test/Driver/riscv64-toolchain-extra.c
    clang/test/Driver/sigpipe-handling.c
    clang/test/Driver/target-override.c
    clang/test/Driver/verbose-output-quoting.c
    clang/test/Frontend/dependency-gen-symlink.c
    clang/test/Index/preamble-reparse-changed-module.m
    clang/test/InterfaceStubs/driver-test.c
    clang/test/InterfaceStubs/driver-test2.c
    clang/test/InterfaceStubs/driver-test3.c
    clang/test/Modules/crash-vfs-headermaps.m
    clang/test/Modules/crash-vfs-include-pch.m
    clang/test/Modules/crash-vfs-path-emptydir-entries.m
    clang/test/Modules/crash-vfs-path-symlink-topheader.m
    clang/test/Modules/embed-files-compressed.cpp
    clang/test/Modules/embed-files.cpp
    clang/test/Modules/exponential-paths.cpp
    clang/test/Modules/framework-name.m
    clang/test/Modules/implicit-private-without-public.m
    clang/test/Modules/inferred-framework-case.m
    clang/test/Modules/module-file-modified.c
    clang/test/Modules/module-symlink.m
    clang/test/Modules/modulemap-collision.m
    clang/test/Modules/validate-file-content.m
    clang/test/PCH/validate-file-content.m
    clang/test/Preprocessor/embed_zos.c
    clang/test/Preprocessor/nonportable-include-with-hmap.c
    clang/test/Profile/cxx-hash-v2.cpp
    clang/test/SemaCXX/warn-unsafe-buffer-usage-debug-unclaimed/warn-unsafe-buffer-usage-debug-unclaimed.cpp
    clang/test/Tooling/auto-detect-from-source-parent-of-cwd.cpp
    clang/test/Tooling/clang-check-pwd.cpp
    llvm/utils/lit/lit/llvm/config.py

Removed: 
    


################################################################################
diff  --git a/clang/test/Analysis/scan-build/cxx-name.test b/clang/test/Analysis/scan-build/cxx-name.test
index 483762d619d17..b602cb5c5231c 100644
--- a/clang/test/Analysis/scan-build/cxx-name.test
+++ b/clang/test/Analysis/scan-build/cxx-name.test
@@ -1,5 +1,3 @@
-REQUIRES: shell
-
 RUN: %scan-build sh -c 'echo "CLANG_CXX=/$(basename "$CLANG_CXX")/"' | FileCheck %s
 
 Check that scan-build sets the CLANG_CXX environment variable (meant to be

diff  --git a/clang/test/Analysis/scan-build/deduplication.test b/clang/test/Analysis/scan-build/deduplication.test
index 2ec3061701fce..067a5153d67db 100644
--- a/clang/test/Analysis/scan-build/deduplication.test
+++ b/clang/test/Analysis/scan-build/deduplication.test
@@ -1,5 +1,3 @@
-REQUIRES: shell
-
 RUN: rm -rf %t.output_dir && mkdir %t.output_dir
 RUN: %scan-build -o %t.output_dir \
 RUN:             %clang -S %S/Inputs/deduplication/1.c \

diff  --git a/clang/test/Analysis/scan-build/html_output.test b/clang/test/Analysis/scan-build/html_output.test
index c2b509d9ef661..1eb4e73611cf2 100644
--- a/clang/test/Analysis/scan-build/html_output.test
+++ b/clang/test/Analysis/scan-build/html_output.test
@@ -1,5 +1,3 @@
-REQUIRES: shell
-
 RUN: rm -rf %t.output_dir && mkdir %t.output_dir
 RUN: %scan-build -o %t.output_dir %clang -S %S/Inputs/single_null_dereference.c \
 RUN:     | FileCheck %s -check-prefix CHECK-STDOUT

diff  --git a/clang/test/Analysis/scan-build/plist_html_output.test b/clang/test/Analysis/scan-build/plist_html_output.test
index ca9c5256b9d75..b995aa6d5d36a 100644
--- a/clang/test/Analysis/scan-build/plist_html_output.test
+++ b/clang/test/Analysis/scan-build/plist_html_output.test
@@ -1,5 +1,3 @@
-REQUIRES: shell
-
 RUN: rm -rf %t.output_dir && mkdir %t.output_dir
 RUN: %scan-build -plist-html -o %t.output_dir %clang -S %S/Inputs/single_null_dereference.c \
 RUN:     | FileCheck %s -check-prefix CHECK-STDOUT

diff  --git a/clang/test/Analysis/scan-build/plist_output.test b/clang/test/Analysis/scan-build/plist_output.test
index 4d01640bff6ea..1e7bef1035b51 100644
--- a/clang/test/Analysis/scan-build/plist_output.test
+++ b/clang/test/Analysis/scan-build/plist_output.test
@@ -1,5 +1,3 @@
-REQUIRES: shell
-
 RUN: rm -rf %t.output_dir && mkdir %t.output_dir
 RUN: %scan-build -plist -o %t.output_dir %clang -S %S/Inputs/single_null_dereference.c \
 RUN:     | FileCheck %s -check-prefix CHECK-STDOUT

diff  --git a/clang/test/ClangScanDeps/module-format.c b/clang/test/ClangScanDeps/module-format.c
index 0a6abec80dd90..acfe195c4e080 100644
--- a/clang/test/ClangScanDeps/module-format.c
+++ b/clang/test/ClangScanDeps/module-format.c
@@ -6,8 +6,6 @@
 // section in XCOFF yet.
 // UNSUPPORTED: target={{.*}}-aix{{.*}}
 
-// REQUIRES: shell
-
 // RUN: rm -rf %t && mkdir %t
 // RUN: cp %S/Inputs/modules-pch/* %t
 

diff  --git a/clang/test/ClangScanDeps/modules-context-hash-cwd.c b/clang/test/ClangScanDeps/modules-context-hash-cwd.c
index c609a7dcbc80e..b5086ed409223 100644
--- a/clang/test/ClangScanDeps/modules-context-hash-cwd.c
+++ b/clang/test/ClangScanDeps/modules-context-hash-cwd.c
@@ -1,7 +1,7 @@
+// Most likely platform specific sed 
diff erences
+// UNSUPPORTED: system-windows
 // Test current directory pruning when computing the context hash.
 
-// REQUIRES: shell
-
 // RUN: rm -rf %t
 // RUN: split-file %s %t
 // RUN: sed -e "s|DIR|%/t|g" %t/cdb0.json.in > %t/cdb0.json

diff  --git a/clang/test/ClangScanDeps/modules-file-path-isolation.c b/clang/test/ClangScanDeps/modules-file-path-isolation.c
index 2bd0a58ca9ae6..55784cf41700e 100644
--- a/clang/test/ClangScanDeps/modules-file-path-isolation.c
+++ b/clang/test/ClangScanDeps/modules-file-path-isolation.c
@@ -3,7 +3,8 @@
 // Note: the spelling of the modulemap path still depends on the includer, since
 // that is the only source of information about it.
 
-// REQUIRES: shell
+// Needs symlinks
+// UNSUPPORTED: system-windows
 
 // RUN: rm -rf %t
 // RUN: split-file %s %t

diff  --git a/clang/test/ClangScanDeps/modules-in-stable-dirs.c b/clang/test/ClangScanDeps/modules-in-stable-dirs.c
index 066c5445f41f4..f54e09fecee94 100644
--- a/clang/test/ClangScanDeps/modules-in-stable-dirs.c
+++ b/clang/test/ClangScanDeps/modules-in-stable-dirs.c
@@ -1,3 +1,6 @@
+// Most likely platform specific sed 
diff erences
+// UNSUPPORTED: system-windows
+
 // This test verifies modules that are entirely comprised from stable directory inputs are captured in
 // dependency information.
 
@@ -5,7 +8,6 @@
 // The second compilation verifies that external paths are resolved when a 
 // vfsoverlay for determining is-in-stable-directories.
 
-// REQUIRES: shell
 // RUN: rm -rf %t
 // RUN: split-file %s %t
 // RUN: sed -e "s|DIR|%/t|g" %t/compile-commands.json.in > %t/compile-commands.json

diff  --git a/clang/test/ClangScanDeps/modules-symlink-dir-from-module.c b/clang/test/ClangScanDeps/modules-symlink-dir-from-module.c
index 5f0ebc13eb2ee..85f5f1acc3793 100644
--- a/clang/test/ClangScanDeps/modules-symlink-dir-from-module.c
+++ b/clang/test/ClangScanDeps/modules-symlink-dir-from-module.c
@@ -3,7 +3,7 @@
 // module below does not transitively import Mod via a symlink, so it should not
 // see the symlinked path.
 
-// REQUIRES: shell
+// REQUIRES: symlinks
 
 // RUN: rm -rf %t
 // RUN: split-file %s %t

diff  --git a/clang/test/ClangScanDeps/modules-symlink-dir-vfs.c b/clang/test/ClangScanDeps/modules-symlink-dir-vfs.c
index f2e5758aa41fb..eb49ab90c4d18 100644
--- a/clang/test/ClangScanDeps/modules-symlink-dir-vfs.c
+++ b/clang/test/ClangScanDeps/modules-symlink-dir-vfs.c
@@ -5,7 +5,7 @@
 // RUN: rm -rf %t
 // RUN: split-file %s %t
 
-// REQUIRES: shell
+// REQUIRES: symlinks
 
 // RUN: mkdir -p %t/frameworks-symlink
 // RUN: ln -s %t/frameworks/FW.framework %t/frameworks-symlink/FW.framework

diff  --git a/clang/test/ClangScanDeps/modules-symlink-dir.c b/clang/test/ClangScanDeps/modules-symlink-dir.c
index 35e830e8c6c57..9946b57c6680f 100644
--- a/clang/test/ClangScanDeps/modules-symlink-dir.c
+++ b/clang/test/ClangScanDeps/modules-symlink-dir.c
@@ -1,8 +1,8 @@
+// REQUIRES: symlinks
+
 // Check that we canonicalize the module map path without changing the module
 // directory, which would break header lookup.
 
-// REQUIRES: shell
-
 // RUN: rm -rf %t
 // RUN: split-file %s %t
 // RUN: sed -e "s|DIR|%/t|g" %t/cdb.json.in > %t/cdb.json

diff  --git a/clang/test/ClangScanDeps/prebuilt-modules-in-stable-dirs.c b/clang/test/ClangScanDeps/prebuilt-modules-in-stable-dirs.c
index acacda1466b59..39b2863d966c3 100644
--- a/clang/test/ClangScanDeps/prebuilt-modules-in-stable-dirs.c
+++ b/clang/test/ClangScanDeps/prebuilt-modules-in-stable-dirs.c
@@ -1,3 +1,6 @@
+/// Most likely platform specific sed 
diff erences
+// UNSUPPORTED: system-windows
+
 /// This test validates that modules that depend on prebuilt modules 
 ///   resolve `is-in-stable-directories` correctly. 
 /// The steps are: 
@@ -5,8 +8,7 @@
 ///   that is seemingly from the sysroot. However, it depends on a local header that is overlaid.
 /// 2. Build the PCH & dependency PCMs.
 /// 3. Scan a source file that transitively depends on the same modules as the pcm.
- 
-// REQUIRES: shell
+
 // RUN: rm -rf %t
 // RUN: split-file %s %t
 // RUN: sed -e "s|DIR|%/t|g" %t/overlay.json.template > %t/overlay.json

diff  --git a/clang/test/ClangScanDeps/subframework_header_dir_symlink.m b/clang/test/ClangScanDeps/subframework_header_dir_symlink.m
index 3bbc5320d4e0c..66ff9df80527b 100644
--- a/clang/test/ClangScanDeps/subframework_header_dir_symlink.m
+++ b/clang/test/ClangScanDeps/subframework_header_dir_symlink.m
@@ -1,4 +1,4 @@
-// REQUIRES: shell
+// REQUIRES: symlinks
 // RUN: rm -rf %t.dir
 // RUN: rm -rf %t.cdb
 // RUN: mkdir -p %t.dir

diff  --git a/clang/test/ClangScanDeps/symlink.cpp b/clang/test/ClangScanDeps/symlink.cpp
index d262f8c7f1d95..5b13d88544d98 100644
--- a/clang/test/ClangScanDeps/symlink.cpp
+++ b/clang/test/ClangScanDeps/symlink.cpp
@@ -1,4 +1,5 @@
-// REQUIRES: shell
+// REQUIRES: symlinks
+
 // RUN: rm -rf %t.dir
 // RUN: rm -rf %t.cdb
 // RUN: mkdir -p %t.dir

diff  --git a/clang/test/CodeCompletion/included-symlinks.cpp b/clang/test/CodeCompletion/included-symlinks.cpp
index 7ac5e20e7fdef..c3e7c0ab0c5a3 100644
--- a/clang/test/CodeCompletion/included-symlinks.cpp
+++ b/clang/test/CodeCompletion/included-symlinks.cpp
@@ -1,4 +1,4 @@
-// REQUIRES: shell
+// REQUIRES: symlinks
 // RUN: rm -rf %t && mkdir -p %t/real/myproj && mkdir -p %t/links
 // RUN: touch %t/real/foo.h && ln -s %t/real/foo.h %t/links/foo.h
 // RUN: touch %t/real/foobar.h && ln -s %t/real/foobar.h %t/links/foobar.h

diff  --git a/clang/test/Driver/aarch64-toolchain-extra.c b/clang/test/Driver/aarch64-toolchain-extra.c
index 4945a622969c6..ccd2876ea84cb 100644
--- a/clang/test/Driver/aarch64-toolchain-extra.c
+++ b/clang/test/Driver/aarch64-toolchain-extra.c
@@ -2,8 +2,7 @@
 
 // The tests here are similar to those in aarch64-toolchain.c, however
 // these tests need to create symlinks to test directory trees in order to
-// set up the environment and therefore shell support is required.
-// REQUIRES: shell
+// set up the environment and therefore POSIX is required.
 // UNSUPPORTED: system-windows
 
 // If there is no GCC install detected then the driver searches for executables

diff  --git a/clang/test/Driver/amdgpu-hip-system-arch.c b/clang/test/Driver/amdgpu-hip-system-arch.c
index 12e298a8636b1..972105143debf 100644
--- a/clang/test/Driver/amdgpu-hip-system-arch.c
+++ b/clang/test/Driver/amdgpu-hip-system-arch.c
@@ -1,4 +1,5 @@
-// REQUIRES: shell
+// Needs chmod
+// UNSUPPORTED: system-windows
 // XFAIL: target={{.*}}-zos{{.*}}
 
 // RUN: mkdir -p %t

diff  --git a/clang/test/Driver/amdgpu-openmp-system-arch-fail.c b/clang/test/Driver/amdgpu-openmp-system-arch-fail.c
index eb037183b4c3c..8973d66afbae4 100644
--- a/clang/test/Driver/amdgpu-openmp-system-arch-fail.c
+++ b/clang/test/Driver/amdgpu-openmp-system-arch-fail.c
@@ -1,4 +1,5 @@
-// REQUIRES: shell
+// Due to chmod
+// UNSUPPORTED: system-windows
 
 // RUN: mkdir -p %t
 // RUN: rm -f %t/amdgpu_arch_fail %t/amdgpu_arch_
diff erent

diff  --git a/clang/test/Driver/arm-toolchain-extra.c b/clang/test/Driver/arm-toolchain-extra.c
index 43cca6112176c..03b30d6540898 100644
--- a/clang/test/Driver/arm-toolchain-extra.c
+++ b/clang/test/Driver/arm-toolchain-extra.c
@@ -3,7 +3,6 @@
 // The tests here are similar to those in arm-toolchain.c, however
 // these tests need to create symlinks to test directory trees in order to
 // set up the environment and therefore shell support is required.
-// REQUIRES: shell
 // UNSUPPORTED: system-windows
 
 // If there is no GCC install detected then the driver searches for executables

diff  --git a/clang/test/Driver/baremetal-multilib-layered.yaml b/clang/test/Driver/baremetal-multilib-layered.yaml
index 6671d9d672f58..61d69140fb7fd 100644
--- a/clang/test/Driver/baremetal-multilib-layered.yaml
+++ b/clang/test/Driver/baremetal-multilib-layered.yaml
@@ -1,4 +1,3 @@
-# REQUIRES: shell
 # UNSUPPORTED: system-windows
 
 # This test demonstrates "layered" multilib in which more than one

diff  --git a/clang/test/Driver/baremetal-multilib.yaml b/clang/test/Driver/baremetal-multilib.yaml
index 1a80c3b4ccfc8..c2b37fad97dea 100644
--- a/clang/test/Driver/baremetal-multilib.yaml
+++ b/clang/test/Driver/baremetal-multilib.yaml
@@ -1,4 +1,3 @@
-# REQUIRES: shell
 # UNSUPPORTED: system-windows
 
 # RUN: %clang --multi-lib-config=%s -no-canonical-prefixes -x c++ %s -### -o %t.out 2>&1 \

diff  --git a/clang/test/Driver/baremetal-sysroot.cpp b/clang/test/Driver/baremetal-sysroot.cpp
index 4c062e28e6bc3..717466c185763 100644
--- a/clang/test/Driver/baremetal-sysroot.cpp
+++ b/clang/test/Driver/baremetal-sysroot.cpp
@@ -1,4 +1,3 @@
-// REQUIRES: shell
 // UNSUPPORTED: system-windows
 
 // Test that when a --sysroot is not provided, driver picks the default

diff  --git a/clang/test/Driver/darwin-ld-demangle-lld.c b/clang/test/Driver/darwin-ld-demangle-lld.c
index 12fd8502ce7a0..4edeb1058b933 100644
--- a/clang/test/Driver/darwin-ld-demangle-lld.c
+++ b/clang/test/Driver/darwin-ld-demangle-lld.c
@@ -1,5 +1,4 @@
 // With -fuse-ld=lld, -demangle is always passed to the linker on Darwin.
-// REQUIRES: shell
 
 // RUN: %clang --target=x86_64-apple-darwin -### -fuse-ld=lld \
 // RUN:   -B%S/Inputs/lld -mlinker-version=0 %s 2>&1 \

diff  --git a/clang/test/Driver/darwin-ld-lto-lld.c b/clang/test/Driver/darwin-ld-lto-lld.c
index 2f44cad534b1f..3e110463fc286 100644
--- a/clang/test/Driver/darwin-ld-lto-lld.c
+++ b/clang/test/Driver/darwin-ld-lto-lld.c
@@ -1,5 +1,3 @@
-// REQUIRES: shell
-
 // Check that lld gets "-lto_library".
 // (Separate test file since darwin-ld-lto requires system-darwin but this
 // test doesn't require that.)

diff  --git a/clang/test/Driver/mingw-sysroot.cpp b/clang/test/Driver/mingw-sysroot.cpp
index 0ba2f336fd2e0..8e46d23c1782d 100644
--- a/clang/test/Driver/mingw-sysroot.cpp
+++ b/clang/test/Driver/mingw-sysroot.cpp
@@ -1,4 +1,3 @@
-// REQUIRES: shell
 // UNSUPPORTED: system-windows
 
 // RUN: rm -rf %t.dir/testroot-gcc

diff  --git a/clang/test/Driver/no-canonical-prefixes.c b/clang/test/Driver/no-canonical-prefixes.c
index 669e56639284a..f2b76db8de7e1 100644
--- a/clang/test/Driver/no-canonical-prefixes.c
+++ b/clang/test/Driver/no-canonical-prefixes.c
@@ -1,5 +1,5 @@
 // Due to ln -sf:
-// REQUIRES: shell
+// UNSUPPORTED: system-windows
 // RUN: mkdir -p %t.real
 // RUN: cd %t.real
 // RUN: ln -sf %clang test-clang

diff  --git a/clang/test/Driver/nvptx-cuda-system-arch.c b/clang/test/Driver/nvptx-cuda-system-arch.c
index 2d4eca8c43bc3..675d15bf22cc0 100644
--- a/clang/test/Driver/nvptx-cuda-system-arch.c
+++ b/clang/test/Driver/nvptx-cuda-system-arch.c
@@ -1,4 +1,4 @@
-// REQUIRES: shell
+// UNSUPPORTED: system-windows
 // XFAIL: target={{.*}}-zos{{.*}}
 
 // RUN: mkdir -p %t

diff  --git a/clang/test/Driver/openmp-system-arch.c b/clang/test/Driver/openmp-system-arch.c
index 167b07a23f512..1670fd30f4b59 100644
--- a/clang/test/Driver/openmp-system-arch.c
+++ b/clang/test/Driver/openmp-system-arch.c
@@ -1,4 +1,5 @@
-// REQUIRES: shell
+// Needs chmod
+// UNSUPPORTED: system-windows
 // XFAIL: target={{.*}}-zos{{.*}}
 
 // RUN: mkdir -p %t

diff  --git a/clang/test/Driver/parse-progname.c b/clang/test/Driver/parse-progname.c
index 34040b81dc733..104ea971684aa 100644
--- a/clang/test/Driver/parse-progname.c
+++ b/clang/test/Driver/parse-progname.c
@@ -1,4 +1,5 @@
-// REQUIRES: shell, arm-registered-target
+// REQUIRES: arm-registered-target
+// UNSUPPORTED: system-windows
 // UNSUPPORTED: llvm-driver
 
 // RUN: mkdir -p %t

diff  --git a/clang/test/Driver/riscv32-toolchain-extra.c b/clang/test/Driver/riscv32-toolchain-extra.c
index 420f7b5203609..d228a58d23d4e 100644
--- a/clang/test/Driver/riscv32-toolchain-extra.c
+++ b/clang/test/Driver/riscv32-toolchain-extra.c
@@ -2,8 +2,7 @@
 
 // The tests here are similar to those in riscv32-toolchain.c, however
 // these tests need to create symlinks to test directory trees in order to
-// set up the environment and therefore shell support is required.
-// REQUIRES: shell
+// set up the environment and therefore POSIX support is required.
 // UNSUPPORTED: system-windows
 
 // If there is no GCC install detected then the driver searches for executables

diff  --git a/clang/test/Driver/riscv64-toolchain-extra.c b/clang/test/Driver/riscv64-toolchain-extra.c
index 87bcdeb651a1e..e1d3a10dd788d 100644
--- a/clang/test/Driver/riscv64-toolchain-extra.c
+++ b/clang/test/Driver/riscv64-toolchain-extra.c
@@ -3,7 +3,6 @@
 // The tests here are similar to those in riscv64-toolchain.c, however
 // these tests need to create symlinks to test directory trees in order to
 // set up the environment and therefore shell support is required.
-// REQUIRES: shell
 // UNSUPPORTED: system-windows
 
 // If there is no GCC install detected then the driver searches for executables

diff  --git a/clang/test/Driver/sigpipe-handling.c b/clang/test/Driver/sigpipe-handling.c
index 852f0bfaf7981..7283800ba3c2f 100644
--- a/clang/test/Driver/sigpipe-handling.c
+++ b/clang/test/Driver/sigpipe-handling.c
@@ -1,4 +1,4 @@
-// REQUIRES: shell
+// UNSUPPORTED: system-windows
 // RUN: %clang -E -fno-integrated-cc1 %s | head | FileCheck %s
 
 // Test that the parent clang driver process doesn't crash when the child cc1

diff  --git a/clang/test/Driver/target-override.c b/clang/test/Driver/target-override.c
index 2c605ac9a03da..5bd88e10e8576 100644
--- a/clang/test/Driver/target-override.c
+++ b/clang/test/Driver/target-override.c
@@ -1,5 +1,4 @@
-// REQUIRES: shell
-// REQUIRES: x86-registered-target
+// REQUIRES: x86-registered-target, symlinks
 
 // RUN: rm -rf %t && mkdir %t
 // RUN: ln -s %clang %t/i386-clang

diff  --git a/clang/test/Driver/verbose-output-quoting.c b/clang/test/Driver/verbose-output-quoting.c
index b2781b754ecd7..ebfe3d08fb234 100644
--- a/clang/test/Driver/verbose-output-quoting.c
+++ b/clang/test/Driver/verbose-output-quoting.c
@@ -1,4 +1,4 @@
-// REQUIRES: shell
+// UNSUPPORTED: system-windows
 // RUN: %clang --verbose -DSPACE="a b"  -### %s 2>&1 | FileCheck -check-prefix=SPACE     -strict-whitespace %s
 // RUN: %clang --verbose -DQUOTES=\"\"  -### %s 2>&1 | FileCheck -check-prefix=QUOTES    -strict-whitespace %s
 // RUN: %clang --verbose -DBACKSLASH=\\ -### %s 2>&1 | FileCheck -check-prefix=BACKSLASH -strict-whitespace %s

diff  --git a/clang/test/Frontend/dependency-gen-symlink.c b/clang/test/Frontend/dependency-gen-symlink.c
index 2fa339ad2abf2..b88fb7f1a6b2f 100644
--- a/clang/test/Frontend/dependency-gen-symlink.c
+++ b/clang/test/Frontend/dependency-gen-symlink.c
@@ -1,4 +1,4 @@
-// REQUIRES: shell
+// REQUIRES: symlinks
 
 // Basic test
 // RUN: rm -rf %t.dir

diff  --git a/clang/test/Index/preamble-reparse-changed-module.m b/clang/test/Index/preamble-reparse-changed-module.m
index 349ed0db27d01..88e837afe6b0a 100644
--- a/clang/test/Index/preamble-reparse-changed-module.m
+++ b/clang/test/Index/preamble-reparse-changed-module.m
@@ -1,4 +1,4 @@
-// REQUIRES: shell
+// UNSUPPORTED: system-windows
 
 // RUN: rm -rf %t
 // RUN: mkdir -p %t/mod

diff  --git a/clang/test/InterfaceStubs/driver-test.c b/clang/test/InterfaceStubs/driver-test.c
index 741cdab3e9d31..9080890f85cde 100644
--- a/clang/test/InterfaceStubs/driver-test.c
+++ b/clang/test/InterfaceStubs/driver-test.c
@@ -1,5 +1,4 @@
 // REQUIRES: x86-registered-target
-// REQUIRES: shell
 
 // NOTE: -fno-integrated-cc1 has been added to work around an ASAN failure
 //       caused by in-process cc1 invocation. Clang InterfaceStubs is not the

diff  --git a/clang/test/InterfaceStubs/driver-test2.c b/clang/test/InterfaceStubs/driver-test2.c
index 905b27922264c..6c0eb00a62f37 100644
--- a/clang/test/InterfaceStubs/driver-test2.c
+++ b/clang/test/InterfaceStubs/driver-test2.c
@@ -1,5 +1,4 @@
 // REQUIRES: x86-registered-target
-// REQUIRES: shell
 
 // NOTE: -fno-integrated-cc1 has been added to work around an ASAN failure
 //       caused by in-process cc1 invocation. Clang InterfaceStubs is not the

diff  --git a/clang/test/InterfaceStubs/driver-test3.c b/clang/test/InterfaceStubs/driver-test3.c
index 407fb5c20cb41..0973f1ffc18f4 100644
--- a/clang/test/InterfaceStubs/driver-test3.c
+++ b/clang/test/InterfaceStubs/driver-test3.c
@@ -1,5 +1,4 @@
 // REQUIRES: x86-registered-target
-// REQUIRES: shell
 
 // RUN: mkdir -p %t; cd %t
 // RUN: %clang -target x86_64-unknown-linux-gnu -c -emit-interface-stubs %s -o %t/driver-test3.o

diff  --git a/clang/test/Modules/crash-vfs-headermaps.m b/clang/test/Modules/crash-vfs-headermaps.m
index 0afa0dee63792..26ff3f26450b5 100644
--- a/clang/test/Modules/crash-vfs-headermaps.m
+++ b/clang/test/Modules/crash-vfs-headermaps.m
@@ -1,4 +1,4 @@
-// REQUIRES: crash-recovery, shell, system-darwin
+// REQUIRES: crash-recovery, system-darwin
 
 // RUN: rm -rf %t
 // RUN: mkdir -p %t/m %t/i/Foo.framework/Headers

diff  --git a/clang/test/Modules/crash-vfs-include-pch.m b/clang/test/Modules/crash-vfs-include-pch.m
index 9ca10020094b0..2610b06974578 100644
--- a/clang/test/Modules/crash-vfs-include-pch.m
+++ b/clang/test/Modules/crash-vfs-include-pch.m
@@ -1,4 +1,4 @@
-// REQUIRES: crash-recovery, shell, system-darwin
+// REQUIRES: crash-recovery, system-darwin
 //
 // RUN: rm -rf %t
 // RUN: mkdir -p %t/m %t/out

diff  --git a/clang/test/Modules/crash-vfs-path-emptydir-entries.m b/clang/test/Modules/crash-vfs-path-emptydir-entries.m
index a7ee1fe176fb0..9564f11cdbcff 100644
--- a/clang/test/Modules/crash-vfs-path-emptydir-entries.m
+++ b/clang/test/Modules/crash-vfs-path-emptydir-entries.m
@@ -1,4 +1,5 @@
-// REQUIRES: crash-recovery, shell
+// UNSUPPORTED: system-windows
+// REQUIRES: crash-recovery
 
 // FIXME: This XFAIL is cargo-culted from crash-report.c. Do we need it?
 // XFAIL: target={{.*-windows-gnu}}

diff  --git a/clang/test/Modules/crash-vfs-path-symlink-topheader.m b/clang/test/Modules/crash-vfs-path-symlink-topheader.m
index 5c2d502b209da..bab754fcb749b 100644
--- a/clang/test/Modules/crash-vfs-path-symlink-topheader.m
+++ b/clang/test/Modules/crash-vfs-path-symlink-topheader.m
@@ -1,4 +1,4 @@
-// REQUIRES: crash-recovery, shell
+// REQUIRES: crash-recovery, symlinks
 
 // FIXME: This XFAIL is cargo-culted from crash-report.c. Do we need it?
 // XFAIL: target={{.*-windows-gnu}}

diff  --git a/clang/test/Modules/embed-files-compressed.cpp b/clang/test/Modules/embed-files-compressed.cpp
index aca9983ff160b..5318aeb10a81e 100644
--- a/clang/test/Modules/embed-files-compressed.cpp
+++ b/clang/test/Modules/embed-files-compressed.cpp
@@ -1,5 +1,4 @@
 // REQUIRES: zlib || zstd
-// REQUIRES: shell
 //
 // RUN: rm -rf %t
 // RUN: mkdir %t

diff  --git a/clang/test/Modules/embed-files.cpp b/clang/test/Modules/embed-files.cpp
index 8e5a16e544008..946daaee9991e 100644
--- a/clang/test/Modules/embed-files.cpp
+++ b/clang/test/Modules/embed-files.cpp
@@ -13,7 +13,7 @@
 // FIXME: This test is flaky on Windows because attempting to delete a file
 // after writing it just doesn't seem to work well, at least not in the lit
 // shell.
-// REQUIRES: shell
+// UNSUPPORTED: system-windows
 // RUN: rm %t/x.h
 // RUN: %clang_cc1 -fmodules -I%t -fmodule-map-file=%t/modulemap -fmodule-file=%t/a.pcm -fmodule-file=%t/b.pcm %s -verify
 #include "a.h"

diff  --git a/clang/test/Modules/exponential-paths.cpp b/clang/test/Modules/exponential-paths.cpp
index b5641933f8d08..05b586bf5cd18 100644
--- a/clang/test/Modules/exponential-paths.cpp
+++ b/clang/test/Modules/exponential-paths.cpp
@@ -1,5 +1,3 @@
-// REQUIRES: shell
-//
 // RUN: rm -rf %t
 // RUN: mkdir %t
 //

diff  --git a/clang/test/Modules/framework-name.m b/clang/test/Modules/framework-name.m
index 52e68f12de5ae..3e0c45971f969 100644
--- a/clang/test/Modules/framework-name.m
+++ b/clang/test/Modules/framework-name.m
@@ -1,4 +1,5 @@
-// REQUIRES: shell
+// REQUIRES: symlinks
+
 // RUN: rm -rf %t.mcp %t
 // RUN: mkdir -p %t
 // RUN: ln -s %S/Inputs/NameInDir2.framework %t/NameInImport.framework

diff  --git a/clang/test/Modules/implicit-private-without-public.m b/clang/test/Modules/implicit-private-without-public.m
index e4920bcc7ec6f..ee0674e64a252 100644
--- a/clang/test/Modules/implicit-private-without-public.m
+++ b/clang/test/Modules/implicit-private-without-public.m
@@ -1,4 +1,3 @@
-// REQUIRES: shell
 // RUN: rm -rf %t
 // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t \
 // RUN:   -F%S/Inputs/implicit-private-without-public \

diff  --git a/clang/test/Modules/inferred-framework-case.m b/clang/test/Modules/inferred-framework-case.m
index 2ed443f2b5a18..64828b5cdd868 100644
--- a/clang/test/Modules/inferred-framework-case.m
+++ b/clang/test/Modules/inferred-framework-case.m
@@ -1,7 +1,7 @@
 // RUN: rm -rf %t
 // RUN: %clang_cc1 -fmodules-cache-path=%t -fmodules -fimplicit-module-maps -F %S/Inputs %s -verify -DA
 // FIXME: PR20299 - getCanonicalName() is not implemented on Windows.
-// REQUIRES: shell
+// UNSUPPORTED: system-windows
 
 @import MOdule; // expected-error{{module 'MOdule' not found}}
 @import Module;

diff  --git a/clang/test/Modules/module-file-modified.c b/clang/test/Modules/module-file-modified.c
index 57160f34a46cf..1a02b3fa511b3 100644
--- a/clang/test/Modules/module-file-modified.c
+++ b/clang/test/Modules/module-file-modified.c
@@ -9,4 +9,3 @@
 int foo = 0; // redefinition of 'foo'
 // CHECK: fatal error: file {{.*}} has been modified since the module file {{.*}} was built
 // CHECK: note: please rebuild precompiled file
-// REQUIRES: shell

diff  --git a/clang/test/Modules/module-symlink.m b/clang/test/Modules/module-symlink.m
index efdaf3db0dfef..9de1cf9b5fb5d 100644
--- a/clang/test/Modules/module-symlink.m
+++ b/clang/test/Modules/module-symlink.m
@@ -1,4 +1,4 @@
-// REQUIRES: shell
+// REQUIRES: symlinks
 
 // RUN: rm -rf %t
 // RUN: %clang_cc1 -fmodules-cache-path=%t/modules -fmodules -fimplicit-module-maps -I %S/Inputs -emit-pch -o %t.pch %s -verify

diff  --git a/clang/test/Modules/modulemap-collision.m b/clang/test/Modules/modulemap-collision.m
index 5ada45da3dae1..2778386dfd331 100644
--- a/clang/test/Modules/modulemap-collision.m
+++ b/clang/test/Modules/modulemap-collision.m
@@ -1,4 +1,5 @@
-// REQUIRES: shell
+// Most likely platform specific sed 
diff erences
+// UNSUPPORTED: system-windows
 
 // RUN: rm -rf %t
 // RUN: mkdir -p %t/sources %t/build

diff  --git a/clang/test/Modules/validate-file-content.m b/clang/test/Modules/validate-file-content.m
index 9977aa4665f04..cff89884552b7 100644
--- a/clang/test/Modules/validate-file-content.m
+++ b/clang/test/Modules/validate-file-content.m
@@ -1,5 +1,3 @@
-// REQUIRES: shell
-//
 // Check driver works
 // RUN: %clang -fmodules -fsyntax-only -fmodules-validate-input-files-content %s -### 2>&1 | FileCheck --check-prefix=CHECK-CC1 %s
 // CHECK-CC1: -fvalidate-ast-input-files-content

diff  --git a/clang/test/PCH/validate-file-content.m b/clang/test/PCH/validate-file-content.m
index b98979341b76a..8863b7abea3af 100644
--- a/clang/test/PCH/validate-file-content.m
+++ b/clang/test/PCH/validate-file-content.m
@@ -1,5 +1,3 @@
-// REQUIRES: shell
-//
 // Check driver works
 // RUN: %clang -x objective-c-header -fsyntax-only -fpch-validate-input-files-content %s -### 2>&1 | FileCheck --check-prefix=CHECK-CC1 %s
 // CHECK-CC1: -fvalidate-ast-input-files-content

diff  --git a/clang/test/Preprocessor/embed_zos.c b/clang/test/Preprocessor/embed_zos.c
index 564a65f42afcd..12f9bf439ee8b 100644
--- a/clang/test/Preprocessor/embed_zos.c
+++ b/clang/test/Preprocessor/embed_zos.c
@@ -4,7 +4,7 @@
 // RUN: %clang_cc1 -std=c23 %s -fsyntax-only --embed-dir=%t -verify
 // expected-no-diagnostics
 
-// REQUIRES: shell, system-zos
+// REQUIRES: system-zos
 
 const char data[] = {
 #embed <media/art.txt>

diff  --git a/clang/test/Preprocessor/nonportable-include-with-hmap.c b/clang/test/Preprocessor/nonportable-include-with-hmap.c
index 07907dfb40d5b..f7e1abf69ad1e 100644
--- a/clang/test/Preprocessor/nonportable-include-with-hmap.c
+++ b/clang/test/Preprocessor/nonportable-include-with-hmap.c
@@ -1,4 +1,5 @@
-// REQUIRES: shell
+// Most likely platform specific sed 
diff erences
+// UNSUPPORTED: system-windows
 // REQUIRES: case-insensitive-filesystem
 
 // RUN: rm -f %t.hmap

diff  --git a/clang/test/Profile/cxx-hash-v2.cpp b/clang/test/Profile/cxx-hash-v2.cpp
index 995fe008f5236..cb633d53f6f30 100644
--- a/clang/test/Profile/cxx-hash-v2.cpp
+++ b/clang/test/Profile/cxx-hash-v2.cpp
@@ -1,5 +1,3 @@
-// REQUIRES: shell
-
 // Check that all of the hashes in this file are unique (i.e, that none of the
 // profiles for these functions are mutually interchangeable).
 //

diff  --git a/clang/test/SemaCXX/warn-unsafe-buffer-usage-debug-unclaimed/warn-unsafe-buffer-usage-debug-unclaimed.cpp b/clang/test/SemaCXX/warn-unsafe-buffer-usage-debug-unclaimed/warn-unsafe-buffer-usage-debug-unclaimed.cpp
index ab3d925753d47..64dede2568df1 100644
--- a/clang/test/SemaCXX/warn-unsafe-buffer-usage-debug-unclaimed/warn-unsafe-buffer-usage-debug-unclaimed.cpp
+++ b/clang/test/SemaCXX/warn-unsafe-buffer-usage-debug-unclaimed/warn-unsafe-buffer-usage-debug-unclaimed.cpp
@@ -13,7 +13,6 @@
 // This debugging facility is only available in debug builds.
 //
 // REQUIRES: asserts
-// REQUIRES: shell
 
 void test_unclaimed_use(int *p) { // expected-warning{{'p' is an unsafe pointer used for buffer access}}
   p++;           //  expected-note{{used in pointer arithmetic here}} \

diff  --git a/clang/test/Tooling/auto-detect-from-source-parent-of-cwd.cpp b/clang/test/Tooling/auto-detect-from-source-parent-of-cwd.cpp
index 762c89e9e52aa..cc017a08cffda 100644
--- a/clang/test/Tooling/auto-detect-from-source-parent-of-cwd.cpp
+++ b/clang/test/Tooling/auto-detect-from-source-parent-of-cwd.cpp
@@ -1,3 +1,5 @@
+// REQUIRES: symlinks
+
 // RUN: rm -rf %t
 // RUN: mkdir -p %t/abc/def/ijk/qwe
 // RUN: echo "[{\"directory\":\".\",\"command\":\"clang++ -c %t/abc/def/ijk/qwe/test.cpp\",\"file\":\"%t/abc/def/ijk/qwe/test.cpp\"}]" | sed -e 's/\\/\\\\/g' > %t/compile_commands.json
@@ -9,5 +11,3 @@
 // CHECK: a type specifier is required
 // CHECK: /abc/def/ijk/qwe/test.cpp
 invalid;
-
-// REQUIRES: shell

diff  --git a/clang/test/Tooling/clang-check-pwd.cpp b/clang/test/Tooling/clang-check-pwd.cpp
index 2e8d4a3fe12b6..309cee54aadd9 100644
--- a/clang/test/Tooling/clang-check-pwd.cpp
+++ b/clang/test/Tooling/clang-check-pwd.cpp
@@ -1,3 +1,5 @@
+// REQUIRES: symlinks
+
 // RUN: rm -rf %t
 // RUN: mkdir %t
 // RUN: echo "[{\"directory\":\".\",\"command\":\"clang++ -c %t/test.cpp\",\"file\":\"%t/test.cpp\"}]" | sed -e 's/\\/\\\\/g' > %t/compile_commands.json

diff  --git a/llvm/utils/lit/lit/llvm/config.py b/llvm/utils/lit/lit/llvm/config.py
index 56aa5eb64fa36..3fbda5489a9de 100644
--- a/llvm/utils/lit/lit/llvm/config.py
+++ b/llvm/utils/lit/lit/llvm/config.py
@@ -198,6 +198,9 @@ def __init__(self, lit_config, config):
             if gmalloc_path_str is not None:
                 self.with_environment("DYLD_INSERT_LIBRARIES", gmalloc_path_str)
 
+        if not platform.system() == "Windows":
+            features.add("symlinks")
+
     def _find_git_windows_unix_tools(self, tools_needed):
         assert sys.platform == "win32"
         import winreg


        


More information about the llvm-commits mailing list