[clang] [clang] Fix DirectoryWatcher test to check for platform headers (PR #187983)

Jim Lin via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 23 00:21:17 PDT 2026


https://github.com/tclin914 created https://github.com/llvm/llvm-project/pull/187983

The unit test was guarded only by platform checks (Apple/Linux/Windows) but the library itself additionally requires CoreServices.h on macOS and sys/inotify.h on Linux. Without these header checks, the test could be built against a non-functional DirectoryWatcher backend.

Align the test's build conditions with the library's header availability checks in clang/lib/DirectoryWatcher/CMakeLists.txt.

>From 832aab6b9f3ca8754dc195bf646cf20bb68844d8 Mon Sep 17 00:00:00 2001
From: Jim Lin <jim at andestech.com>
Date: Mon, 23 Mar 2026 15:12:02 +0800
Subject: [PATCH] [clang] Fix DirectoryWatcher test to check for platform
 headers

The unit test was guarded only by platform checks (Apple/Linux/Windows)
but the library itself additionally requires CoreServices.h on macOS and
sys/inotify.h on Linux. Without these header checks, the test could be
built against a non-functional DirectoryWatcher backend.

Align the test's build conditions with the library's header availability
checks in clang/lib/DirectoryWatcher/CMakeLists.txt.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply at anthropic.com>
---
 clang/unittests/DirectoryWatcher/CMakeLists.txt | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/clang/unittests/DirectoryWatcher/CMakeLists.txt b/clang/unittests/DirectoryWatcher/CMakeLists.txt
index 28fc6cb21010c..67ce83a548e7c 100644
--- a/clang/unittests/DirectoryWatcher/CMakeLists.txt
+++ b/clang/unittests/DirectoryWatcher/CMakeLists.txt
@@ -1,4 +1,15 @@
-if(APPLE OR CMAKE_SYSTEM_NAME MATCHES "Linux" OR CMAKE_SYSTEM_NAME STREQUAL Windows)
+include(CheckIncludeFiles)
+
+if(APPLE)
+  check_include_files("CoreServices/CoreServices.h" HAVE_CORESERVICES)
+endif()
+if(CMAKE_SYSTEM_NAME MATCHES "Linux")
+  check_include_files("sys/inotify.h" HAVE_INOTIFY)
+endif()
+
+if((APPLE AND HAVE_CORESERVICES) OR
+   (CMAKE_SYSTEM_NAME MATCHES "Linux" AND HAVE_INOTIFY) OR
+   CMAKE_SYSTEM_NAME MATCHES "Windows")
 
   add_clang_unittest(DirectoryWatcherTests
     DirectoryWatcherTest.cpp



More information about the cfe-commits mailing list