RunCMakeTest.cmake 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. include(RunCMake)
  2. include(RunCTest)
  3. function(run_cmake_recursive name)
  4. set(RunCMake_TEST_OPTIONS "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name})
  5. run_cmake(${name}-default)
  6. unset(RunCMake_TEST_OPTIONS)
  7. set(RunCMake_TEST_OPTIONS "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name} -DCMAKE_MAXIMUM_RECURSION_DEPTH=10)
  8. run_cmake(${name}-var)
  9. unset(RunCMake_TEST_OPTIONS)
  10. set(RunCMake_TEST_OPTIONS "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name} -DCMAKE_MAXIMUM_RECURSION_DEPTH=a)
  11. run_cmake(${name}-invalid-var)
  12. unset(RunCMake_TEST_OPTIONS)
  13. run_cmake_command(${name}-default-script ${CMAKE_COMMAND} "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name} -P "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt")
  14. run_cmake_command(${name}-var-script ${CMAKE_COMMAND} "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name} -DCMAKE_MAXIMUM_RECURSION_DEPTH=10 -P "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt")
  15. run_cmake_command(${name}-invalid-var-script ${CMAKE_COMMAND} "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name} -DCMAKE_MAXIMUM_RECURSION_DEPTH=a -P "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt")
  16. endfunction()
  17. function(run_ctest_recursive name)
  18. run_ctest(${name}-default "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name})
  19. run_ctest(${name}-var "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name} -DCMAKE_MAXIMUM_RECURSION_DEPTH=10)
  20. run_ctest(${name}-invalid-var "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=${name} -DCMAKE_MAXIMUM_RECURSION_DEPTH=a)
  21. endfunction()
  22. run_cmake_recursive(function)
  23. run_cmake_recursive(macro)
  24. run_cmake_recursive(include)
  25. run_cmake_recursive(find_package)
  26. run_cmake_recursive(variable_watch)
  27. # We run these tests separately and only with a small limit because they are
  28. # taxing and slow. The "implicit" and "invalid" cases are already thoroughly
  29. # covered by the other tests above.
  30. set(RunCMake_TEST_OPTIONS "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=add_subdirectory -DCMAKE_MAXIMUM_RECURSION_DEPTH=10)
  31. run_cmake(add_subdirectory-var)
  32. unset(RunCMake_TEST_OPTIONS)
  33. set(RunCMake_TEST_OPTIONS "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=try_compile -DCMAKE_MAXIMUM_RECURSION_DEPTH=10)
  34. run_cmake(try_compile-var)
  35. unset(RunCMake_TEST_OPTIONS)
  36. run_ctest_recursive(ctest_read_custom_files)
  37. # We run the ctest_run_script() test separately and only with an explicit limit
  38. # because ctest_run_script() is taxing and slow, and because the implicit
  39. # recursion limit is hit by CTestScriptMode.cmake before we can test it
  40. # properly. The "implicit" and "invalid" cases are already thoroughly covered
  41. # by the other tests above.
  42. run_ctest(ctest_run_script-var "-DCMAKE_MODULE_PATH=${CMAKE_CURRENT_LIST_DIR}" -DTEST_NAME=ctest_run_script -DCMAKE_MAXIMUM_RECURSION_DEPTH=10)