RunCMakeTest.cmake 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. include(RunCTest)
  2. set(CASE_CTEST_BUILD_ARGS "")
  3. set(RunCMake_USE_LAUNCHERS TRUE)
  4. set(RunCMake_USE_CUSTOM_BUILD_COMMAND FALSE)
  5. function(run_ctest_build CASE_NAME)
  6. set(CASE_CTEST_BUILD_ARGS "${ARGN}")
  7. run_ctest(${CASE_NAME})
  8. endfunction()
  9. run_ctest_build(BuildQuiet QUIET)
  10. function(run_BuildFailure)
  11. set(CASE_CMAKELISTS_SUFFIX_CODE [[
  12. add_custom_target(BuildFailure ALL COMMAND command-does-not-exist)
  13. ]])
  14. set(CASE_CMAKELISTS_PREFIX_CODE [[
  15. if(NOT CTEST_USE_LAUNCHERS)
  16. message(FATAL_ERROR "CTEST_USE_LAUNCHERS not set")
  17. endif()
  18. ]])
  19. set(CASE_TEST_PREFIX_CODE [[
  20. cmake_policy(SET CMP0061 NEW)
  21. ]])
  22. set(CASE_TEST_SUFFIX_CODE [[
  23. if (ctest_build_return_value)
  24. message("ctest_build returned non-zero")
  25. else()
  26. message("ctest_build returned zero")
  27. endif()
  28. ]])
  29. run_ctest(BuildFailure)
  30. if (RunCMake_GENERATOR MATCHES "Makefiles")
  31. set(CASE_TEST_PREFIX_CODE "")
  32. run_ctest(BuildFailure-CMP0061-OLD)
  33. endif()
  34. endfunction()
  35. run_BuildFailure()
  36. function(run_BuildChangeId)
  37. set(CASE_TEST_PREFIX_CODE [[
  38. set(CTEST_CHANGE_ID "<>1")
  39. ]])
  40. run_ctest(BuildChangeId)
  41. endfunction()
  42. run_BuildChangeId()
  43. set(RunCMake_USE_LAUNCHERS FALSE)
  44. set(RunCMake_USE_CUSTOM_BUILD_COMMAND TRUE)
  45. set(RunCMake_BUILD_COMMAND "${COLOR_WARNING}")
  46. run_ctest(IgnoreColor)
  47. unset(RunCMake_BUILD_COMMAND)