check-make-program-hooks.cmake 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. set(NUM_TRIES 30)
  2. set(DELAY 1)
  3. if (NOT EXISTS ${v1}/preBuild.hook)
  4. set(RunCMake_TEST_FAILED "preBuild hook did not run\n")
  5. else()
  6. file(READ ${v1}/preBuild.hook preBuildErrors)
  7. if (NOT preBuildErrors MATCHES "^$")
  8. string(APPEND RunCMake_TEST_FAILED "Errors found in data during preBuild hook:\n${preBuildErrors}\n")
  9. endif()
  10. endif()
  11. macro(hasPostBuildArtifacts)
  12. if (NOT postBuildRan AND EXISTS ${v1}/postBuild.hook)
  13. set(postBuildRan 1)
  14. endif()
  15. if (NOT dataDirClean)
  16. file(GLOB data "${v1}/data/*json")
  17. if ("${data}" STREQUAL "")
  18. set(dataDirClean 1)
  19. endif()
  20. endif()
  21. endmacro()
  22. set(postBuildRan 0)
  23. set(dataDirClean 0)
  24. foreach(_ RANGE ${NUM_TRIES})
  25. hasPostBuildArtifacts()
  26. if (postBuildRan AND dataDirClean)
  27. break()
  28. endif()
  29. execute_process(COMMAND ${CMAKE_COMMAND} -E sleep ${DELAY})
  30. endforeach()
  31. if (NOT postBuildRan)
  32. string(APPEND RunCMake_TEST_FAILED "postBuild hook did not run\n")
  33. else()
  34. file(READ ${v1}/postBuild.hook postBuildErrors)
  35. if (NOT postBuildErrors MATCHES "^$")
  36. string(APPEND RunCMake_TEST_FAILED "Errors found in data during postBuild hook:\n${postBuildErrors}\n")
  37. endif()
  38. endif()
  39. if (NOT dataDirClean)
  40. string(APPEND RunCMake_TEST_FAILED "Snippet files not fully removed post build\n")
  41. endif()