From 8a3c195188178245b19bded25a365cb037405843 Mon Sep 17 00:00:00 2001 From: Martin Duffy Date: Wed, 11 Dec 2024 10:37:53 -0500 Subject: [PATCH] Tests/RunCMake: Add RunCMake_CHECK_ONLY Option Allows run_cmake test cases that run a verification script and no other command --- Tests/RunCMake/RunCMake.cmake | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/Tests/RunCMake/RunCMake.cmake b/Tests/RunCMake/RunCMake.cmake index 30af8a5627..e88e343ca5 100644 --- a/Tests/RunCMake/RunCMake.cmake +++ b/Tests/RunCMake/RunCMake.cmake @@ -146,18 +146,22 @@ function(run_cmake test) if(NOT RunCMake_TEST_COMMAND_WORKING_DIRECTORY) set(RunCMake_TEST_COMMAND_WORKING_DIRECTORY "${RunCMake_TEST_BINARY_DIR}") endif() - string(CONCAT _code [[execute_process( - COMMAND ${RunCMake_TEST_COMMAND} - ${RunCMake_TEST_OPTIONS} - ]] "${RunCMake_TEST_RAW_ARGS}\n" [[ - WORKING_DIRECTORY "${RunCMake_TEST_COMMAND_WORKING_DIRECTORY}" - OUTPUT_VARIABLE actual_stdout - ERROR_VARIABLE ${actual_stderr_var} - RESULT_VARIABLE actual_result - ENCODING UTF8 - ${maybe_timeout} - ${maybe_input_file} - )]]) + if(NOT RunCMake_CHECK_ONLY) + string(CONCAT _code [[execute_process( + COMMAND ${RunCMake_TEST_COMMAND} + ${RunCMake_TEST_OPTIONS} + ]] "${RunCMake_TEST_RAW_ARGS}\n" [[ + WORKING_DIRECTORY "${RunCMake_TEST_COMMAND_WORKING_DIRECTORY}" + OUTPUT_VARIABLE actual_stdout + ERROR_VARIABLE ${actual_stderr_var} + RESULT_VARIABLE actual_result + ENCODING UTF8 + ${maybe_timeout} + ${maybe_input_file} + )]]) + else() + set(expect_result "") + endif() if(DEFINED ENV{PWD}) set(old_pwd "$ENV{PWD}") else() @@ -261,7 +265,7 @@ function(run_cmake test) if(RunCMake_TEST_FAILED) set(msg "${RunCMake_TEST_FAILED}\n${msg}") endif() - if(msg) + if(msg AND NOT RunCMake_CHECK_ONLY) string(REPLACE ";" "\" \"" command "\"${RunCMake_TEST_COMMAND}\"") if(RunCMake_TEST_OPTIONS) string(REPLACE ";" "\" \"" options "\"${RunCMake_TEST_OPTIONS}\"") @@ -271,8 +275,7 @@ function(run_cmake test) string(APPEND command " ${RunCMake_TEST_RAW_ARGS}") endif() string(APPEND msg "Command was:\n command> ${command}\n") - endif() - if(msg) + foreach(o IN ITEMS stdout stderr config) if(DEFINED expect_${o}) string(REGEX REPLACE "\n" "\n expect-${o}> " expect_${o} " expect-${o}> ${expect_${o}}") @@ -286,6 +289,8 @@ function(run_cmake test) if(RunCMake_TEST_FAILURE_MESSAGE) string(APPEND msg "${RunCMake_TEST_FAILURE_MESSAGE}") endif() + endif() + if(msg) message(SEND_ERROR "${test}${RunCMake_TEST_VARIANT_DESCRIPTION} - FAILED:\n${msg}") else() message(STATUS "${test}${RunCMake_TEST_VARIANT_DESCRIPTION} - PASSED")