GoogleTest: Restore support for spaces in explicit WORKING_DIRECTORY

Revise commit fc7aa3cd69 (tests: Preserve empty arguments in test
command lines, 2024-09-30, v3.31.0-rc1~33^2) to delay variable expansion
until code evaluation.  Otherwise we may parse the working directory
path as CMake language code.
This commit is contained in:
Ihor Sofiichenko
2025-01-17 18:53:22 -05:00
committed by Brad King
parent 9fe70fd764
commit c7884ceefa
2 changed files with 12 additions and 10 deletions

View File

@@ -400,9 +400,9 @@ function(gtest_add_tests)
message(FATAL_ERROR "${arg_TARGET} does not define an existing CMake target")
endif()
if(NOT arg_WORKING_DIRECTORY)
unset(workDir)
unset(maybe_WORKING_DIRECTORY)
else()
set(workDir WORKING_DIRECTORY "${arg_WORKING_DIRECTORY}")
set(maybe_WORKING_DIRECTORY "WORKING_DIRECTORY \${arg_WORKING_DIRECTORY}")
endif()
if(NOT arg_SOURCES)
@@ -492,11 +492,11 @@ function(gtest_add_tests)
${arg_TEST_PREFIX}${orig_test_name}${arg_TEST_SUFFIX}
)
cmake_language(EVAL CODE "
add_test(NAME ${ctest_test_name}
${workDir}
COMMAND ${arg_TARGET}
add_test(NAME \${ctest_test_name}
${maybe_WORKING_DIRECTORY}
COMMAND \${arg_TARGET}
--gtest_also_run_disabled_tests
--gtest_filter=${gtest_test_name}
--gtest_filter=\${gtest_test_name}
${extra_args}
__CMP0178 [==[${cmp0178}]==]
)"
@@ -508,10 +508,10 @@ function(gtest_add_tests)
else()
set(ctest_test_name ${arg_TEST_PREFIX}${gtest_test_name}${arg_TEST_SUFFIX})
cmake_language(EVAL CODE "
add_test(NAME ${ctest_test_name}
${workDir}
COMMAND ${arg_TARGET}
--gtest_filter=${gtest_test_name}
add_test(NAME \${ctest_test_name}
${maybe_WORKING_DIRECTORY}
COMMAND \${arg_TARGET}
--gtest_filter=\${gtest_test_name}
${extra_args}
__CMP0178 [==[${cmp0178}]==]
)"

View File

@@ -27,9 +27,11 @@ set_property(TARGET launcher_test PROPERTY CROSSCOMPILING_EMULATOR "${emulator}"
gtest_discover_tests(
launcher_test
EXTRA_ARGS a "" b
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
gtest_add_tests(
TARGET launcher_test
EXTRA_ARGS a "" b
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)