include(RunCMake) # Function called in *-check.cmake scripts to check api files. function(check_api expect) file(GLOB_RECURSE actual LIST_DIRECTORIES TRUE RELATIVE ${RunCMake_TEST_BINARY_DIR}/.cmake/api/v1 ${RunCMake_TEST_BINARY_DIR}/.cmake/api/v1/* ) if(NOT "${actual}" MATCHES "${expect}") set(RunCMake_TEST_FAILED "API files: ${actual} do not match what we expected: ${expect} in directory: ${RunCMake_TEST_BINARY_DIR}/.cmake/api/v1" PARENT_SCOPE) endif() endfunction() function(check_python case) if(RunCMake_TEST_FAILED OR NOT PYTHON_EXECUTABLE) return() endif() file(GLOB index ${RunCMake_TEST_BINARY_DIR}/.cmake/api/v1/reply/index-*.json) execute_process( COMMAND ${PYTHON_EXECUTABLE} "${RunCMake_SOURCE_DIR}/${case}-check.py" "${index}" RESULT_VARIABLE result OUTPUT_VARIABLE output ERROR_VARIABLE output ) if(NOT result EQUAL 0) string(REPLACE "\n" "\n " output " ${output}") set(RunCMake_TEST_FAILED "Unexpected index:\n${output}" PARENT_SCOPE) endif() endfunction() run_cmake(Nothing) run_cmake(Empty) run_cmake(EmptyClient) run_cmake(Stale) run_cmake(SharedStateless) run_cmake(ClientStateless) run_cmake(MixedStateless) run_cmake(DuplicateStateless)