test.cmake.in 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. cmake_minimum_required(VERSION 2.8.12)
  2. set(TEST_SUCCESS TRUE)
  3. function(run_test_case NAME WHAT)
  4. set(_message "Testing that launchers are used when running ${WHAT}")
  5. message(STATUS "${_message}...")
  6. # Settings:
  7. set(CTEST_DASHBOARD_SOURCE "@CMake_SOURCE_DIR@/Tests/CTestTestLaunchers")
  8. set(CTEST_DASHBOARD_ROOT "@CMake_BINARY_DIR@/Tests/CTestTestLaunchers")
  9. set(CTEST_SITE "@SITE@")
  10. set(CTEST_BUILD_NAME "Launchers-@BUILDNAME@-CTestTestLaunchers")
  11. set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_SOURCE}/${NAME}")
  12. set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${NAME}-bin")
  13. set(CTEST_CMAKE_GENERATOR "@CMAKE_GENERATOR@")
  14. set(CTEST_CMAKE_GENERATOR_PLATFORM "@CMAKE_GENERATOR_PLATFORM@")
  15. set(CTEST_CMAKE_GENERATOR_TOOLSET "@CMAKE_GENERATOR_TOOLSET@")
  16. set(CTEST_BUILD_CONFIGURATION "$ENV{CMAKE_CONFIG_TYPE}")
  17. set(CTEST_NOTES_FILES "${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}")
  18. ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY})
  19. file(WRITE "${CTEST_BINARY_DIRECTORY}/CMakeCache.txt" "
  20. CMAKE_CXX_FLAGS:STRING=@CMAKE_CXX_FLAGS@
  21. CMAKE_C_FLAGS:STRING=@CMAKE_C_FLAGS@
  22. CMAKE_C_COMPILER:STRING=@CMAKE_C_COMPILER@
  23. CMAKE_CXX_COMPILER:STRING=@CMAKE_CXX_COMPILER@
  24. CMAKE_C_COMPILER_ARG1:STRING=@CMAKE_C_COMPILER_ARG1@
  25. CMAKE_CXX_COMPILER_ARG1:STRING=@CMAKE_CXX_COMPILER_ARG1@
  26. ")
  27. ctest_start(Experimental)
  28. ctest_configure(OPTIONS "-DCTEST_USE_LAUNCHERS=1")
  29. ctest_build(NUMBER_ERRORS error_count)
  30. if("${error_count}" STREQUAL "0")
  31. set(TEST_SUCCESS FALSE PARENT_SCOPE)
  32. message(STATUS "${_message}... FAIL")
  33. else()
  34. message(STATUS "${_message}... PASS")
  35. endif()
  36. endfunction()
  37. run_test_case(launcher_compiler_test_project "the compiler")
  38. run_test_case(launcher_linker_test_project "the linker")
  39. run_test_case(launcher_custom_command_test_project "a custom command")
  40. if(TEST_SUCCESS)
  41. message("CTEST_TEST_LAUNCHER_SUCCESS")
  42. endif()