From 56751c83aa1b9de7f3c785b17922eb9af6bc9e4a Mon Sep 17 00:00:00 2001 From: Sam Freed Date: Wed, 13 Jan 2021 14:48:58 -0800 Subject: Tests: Factor out RunCMake.CMakePresets schema validation Make it available to similar tests. Also fix whitespace in generated error message. --- Tests/RunCMake/CMakePresets/RunCMakeTest.cmake | 16 +--------------- Tests/RunCMake/CMakePresets/validate_schema.cmake | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 15 deletions(-) create mode 100644 Tests/RunCMake/CMakePresets/validate_schema.cmake diff --git a/Tests/RunCMake/CMakePresets/RunCMakeTest.cmake b/Tests/RunCMake/CMakePresets/RunCMakeTest.cmake index 1ffda3d..25a7f2f 100644 --- a/Tests/RunCMake/CMakePresets/RunCMakeTest.cmake +++ b/Tests/RunCMake/CMakePresets/RunCMakeTest.cmake @@ -9,21 +9,7 @@ endif() set(RunCMake-check-file check.cmake) -function(validate_schema file expected_result) - execute_process( - COMMAND "${PYTHON_EXECUTABLE}" "${RunCMake_SOURCE_DIR}/validate_schema.py" "${file}" - RESULT_VARIABLE _result - OUTPUT_VARIABLE _output - ERROR_VARIABLE _error - ) - if(NOT _result STREQUAL expected_result) - string(REPLACE "\n" "\n" _output_p "${_output}") - string(REPLACE "\n" "\n" _error_p "${_error}") - string(APPEND RunCMake_TEST_FAILED "Expected result of validating ${file}: ${expected_result}\nActual result: ${_result}\nOutput:\n${_output_p}\nError:\n${_error_p}") - endif() - - set(RunCMake_TEST_FAILED "${RunCMake_TEST_FAILED}" PARENT_SCOPE) -endfunction() +include("${RunCMake_SOURCE_DIR}/validate_schema.cmake") function(run_cmake_presets name) set(RunCMake_TEST_SOURCE_DIR "${RunCMake_BINARY_DIR}/${name}") diff --git a/Tests/RunCMake/CMakePresets/validate_schema.cmake b/Tests/RunCMake/CMakePresets/validate_schema.cmake new file mode 100644 index 0000000..68b638f --- /dev/null +++ b/Tests/RunCMake/CMakePresets/validate_schema.cmake @@ -0,0 +1,19 @@ +function(validate_schema file expected_result) + if (NOT CMakePresets_VALIDATE_SCRIPT_PATH) + set(CMakePresets_VALIDATE_SCRIPT_PATH "${RunCMake_SOURCE_DIR}/validate_schema.py") + endif() + + execute_process( + COMMAND "${PYTHON_EXECUTABLE}" "${CMakePresets_VALIDATE_SCRIPT_PATH}" "${file}" + RESULT_VARIABLE _result + OUTPUT_VARIABLE _output + ERROR_VARIABLE _error + ) + if(NOT _result STREQUAL expected_result) + string(REPLACE "\n" "\n " _output_p "${_output}") + string(REPLACE "\n" "\n " _error_p "${_error}") + string(APPEND RunCMake_TEST_FAILED "Expected result of validating ${file}: ${expected_result}\nActual result: ${_result}\nOutput:\n ${_output_p}\nError:\n ${_error_p}\n") + endif() + + set(RunCMake_TEST_FAILED "${RunCMake_TEST_FAILED}" PARENT_SCOPE) +endfunction() -- cgit v0.12