[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