From 798cc7010c9f072716ac27037d1dd61a6fd28c89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20R=C3=B6hling?= Date: Wed, 17 Sep 2025 22:54:39 +0200 Subject: [PATCH] Tests: Fix regex matching to handle paths with special characters Use `string(REGEX QUOTE)` for `MATCHES` with constructed patterns. Fixes: #27234 --- .../GenEx-TARGET_PROPERTY/INCLUDE_DIRECTORIES-check.cmake | 3 ++- .../install/TARGETS-FILE_RPATH_CHANGE-old_rpath-check.cmake | 3 ++- Tests/RunCMake/target_include_directories/include_after.cmake | 3 ++- Tests/RunCMake/target_include_directories/include_before.cmake | 3 ++- .../RunCMake/target_include_directories/include_default.cmake | 3 ++- 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Tests/RunCMake/GenEx-TARGET_PROPERTY/INCLUDE_DIRECTORIES-check.cmake b/Tests/RunCMake/GenEx-TARGET_PROPERTY/INCLUDE_DIRECTORIES-check.cmake index ecf7bfee92..a0d1f519fc 100644 --- a/Tests/RunCMake/GenEx-TARGET_PROPERTY/INCLUDE_DIRECTORIES-check.cmake +++ b/Tests/RunCMake/GenEx-TARGET_PROPERTY/INCLUDE_DIRECTORIES-check.cmake @@ -2,7 +2,8 @@ file(READ "${RunCMake_TEST_BINARY_DIR}/out.txt" content) unset(RunCMake_TEST_FAILED) -if (NOT content MATCHES "(INCLUDES1:${RunCMake_TEST_SOURCE_DIR}/include)") +string(REGEX QUOTE RunCMake_TEST_SOURCE_DIR_regex "${RunCMake_TEST_SOURCE_DIR}") +if (NOT content MATCHES "(INCLUDES1:${RunCMake_TEST_SOURCE_DIR_regex}/include)") string(APPEND RunCMake_TEST_FAILED "wrong content for INCLUDES1: \"${CMAKE_MATCH_1}\"\n") endif() diff --git a/Tests/RunCMake/install/TARGETS-FILE_RPATH_CHANGE-old_rpath-check.cmake b/Tests/RunCMake/install/TARGETS-FILE_RPATH_CHANGE-old_rpath-check.cmake index 814f405a9e..f45b303d48 100644 --- a/Tests/RunCMake/install/TARGETS-FILE_RPATH_CHANGE-old_rpath-check.cmake +++ b/Tests/RunCMake/install/TARGETS-FILE_RPATH_CHANGE-old_rpath-check.cmake @@ -1,10 +1,11 @@ include(${RunCMake_SOURCE_DIR}/TARGETS-FILE_RPATH_CHANGE-check-common.cmake) skip_without_rpath_change_rule() string(APPEND prefix "${wsnl}" [[FILE "[^"]*/]]) +string(REGEX QUOTE RunCMake_BINARY_DIR_regex "${RunCMake_BINARY_DIR}") set(target "exe1") string(CONCAT regex "${prefix}${target}\"${wsnl}" - [[OLD_RPATH "]] "${RunCMake_BINARY_DIR}") + [[OLD_RPATH "]] "${RunCMake_BINARY_DIR_regex}") check() if("x${CMAKE_SHARED_LIBRARY_RPATH_ORIGIN_TOKEN}" STREQUAL "x\$ORIGIN") diff --git a/Tests/RunCMake/target_include_directories/include_after.cmake b/Tests/RunCMake/target_include_directories/include_after.cmake index 68a08a75ae..ddd60c17d3 100644 --- a/Tests/RunCMake/target_include_directories/include_after.cmake +++ b/Tests/RunCMake/target_include_directories/include_after.cmake @@ -12,7 +12,8 @@ target_include_directories(main AFTER PRIVATE "${after_include_dir}") get_target_property(actual_include_dirs main INCLUDE_DIRECTORIES) set(desired_include_dirs "${include_dir}" "${after_include_dir}") +string(REGEX QUOTE desired_include_dirs_regex "${desired_include_dirs}") -if (NOT "${actual_include_dirs}" MATCHES "${desired_include_dirs}") +if (NOT "${actual_include_dirs}" MATCHES "^${desired_include_dirs_regex}$") message(SEND_ERROR "include after does not work") endif() diff --git a/Tests/RunCMake/target_include_directories/include_before.cmake b/Tests/RunCMake/target_include_directories/include_before.cmake index 9bebecd54f..404aa4aa4a 100644 --- a/Tests/RunCMake/target_include_directories/include_before.cmake +++ b/Tests/RunCMake/target_include_directories/include_before.cmake @@ -12,7 +12,8 @@ target_include_directories(main BEFORE PRIVATE "${before_include_dir}") get_target_property(actual_include_dirs main INCLUDE_DIRECTORIES) set(desired_include_dirs "${before_include_dir}" "${include_dir}") +string(REGEX QUOTE desired_include_dirs_regex "${desired_include_dirs}") -if (NOT "${actual_include_dirs}" MATCHES "${desired_include_dirs}") +if (NOT "${actual_include_dirs}" MATCHES "^${desired_include_dirs_regex}$") message(SEND_ERROR "include before does not work") endif() diff --git a/Tests/RunCMake/target_include_directories/include_default.cmake b/Tests/RunCMake/target_include_directories/include_default.cmake index 88b2502c30..7526e65b37 100644 --- a/Tests/RunCMake/target_include_directories/include_default.cmake +++ b/Tests/RunCMake/target_include_directories/include_default.cmake @@ -12,7 +12,8 @@ target_include_directories(main AFTER PRIVATE "${default_include_dir}") get_target_property(actual_include_dirs main INCLUDE_DIRECTORIES) set(desired_include_dirs "${include_dir}" "${default_include_dir}") +string(REGEX QUOTE desired_include_dirs_regex "${desired_include_dirs}") -if (NOT "${actual_include_dirs}" MATCHES "${desired_include_dirs}") +if (NOT "${actual_include_dirs}" MATCHES "^${desired_include_dirs_regex}$") message(SEND_ERROR "include default does not work") endif()