Files
CMake/Tests/RunCMake/Instrumentation/check-make-program-hooks.cmake

46 lines
1.2 KiB
CMake

set(NUM_TRIES 30)
set(DELAY 1)
if (NOT EXISTS ${v1}/preBuild.hook)
set(RunCMake_TEST_FAILED "preBuild hook did not run\n")
else()
file(READ ${v1}/preBuild.hook preBuildErrors)
if (NOT preBuildErrors MATCHES "^$")
string(APPEND RunCMake_TEST_FAILED "Errors found in data during preBuild hook:\n${preBuildErrors}\n")
endif()
endif()
macro(hasPostBuildArtifacts)
if (NOT postBuildRan AND EXISTS ${v1}/postBuild.hook)
set(postBuildRan 1)
endif()
if (NOT dataDirClean)
file(GLOB data "${v1}/data/*json")
if ("${data}" STREQUAL "")
set(dataDirClean 1)
endif()
endif()
endmacro()
set(postBuildRan 0)
set(dataDirClean 0)
foreach(_ RANGE ${NUM_TRIES})
hasPostBuildArtifacts()
if (postBuildRan AND dataDirClean)
break()
endif()
execute_process(COMMAND ${CMAKE_COMMAND} -E sleep ${DELAY})
endforeach()
if (NOT postBuildRan)
string(APPEND RunCMake_TEST_FAILED "postBuild hook did not run\n")
else()
file(READ ${v1}/postBuild.hook postBuildErrors)
if (NOT postBuildErrors MATCHES "^$")
string(APPEND RunCMake_TEST_FAILED "Errors found in data during postBuild hook:\n${postBuildErrors}\n")
endif()
endif()
if (NOT dataDirClean)
string(APPEND RunCMake_TEST_FAILED "Snippet files not fully removed post build\n")
endif()