RunCMakeTest.cmake 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. include(RunCMake)
  2. # Function called in *-check.cmake scripts to check api files.
  3. function(check_api expect)
  4. file(GLOB_RECURSE actual
  5. LIST_DIRECTORIES TRUE
  6. RELATIVE ${RunCMake_TEST_BINARY_DIR}/.cmake/api/v1
  7. ${RunCMake_TEST_BINARY_DIR}/.cmake/api/v1/*
  8. )
  9. if(NOT "${actual}" MATCHES "${expect}")
  10. set(RunCMake_TEST_FAILED "API files:
  11. ${actual}
  12. do not match what we expected:
  13. ${expect}
  14. in directory:
  15. ${RunCMake_TEST_BINARY_DIR}/.cmake/api/v1" PARENT_SCOPE)
  16. endif()
  17. endfunction()
  18. function(check_python case)
  19. if(RunCMake_TEST_FAILED OR NOT PYTHON_EXECUTABLE)
  20. return()
  21. endif()
  22. file(GLOB index ${RunCMake_TEST_BINARY_DIR}/.cmake/api/v1/reply/index-*.json)
  23. execute_process(
  24. COMMAND ${PYTHON_EXECUTABLE} "${RunCMake_SOURCE_DIR}/${case}-check.py" "${index}"
  25. RESULT_VARIABLE result
  26. OUTPUT_VARIABLE output
  27. ERROR_VARIABLE output
  28. )
  29. if(NOT result EQUAL 0)
  30. string(REPLACE "\n" "\n " output " ${output}")
  31. set(RunCMake_TEST_FAILED "Unexpected index:\n${output}" PARENT_SCOPE)
  32. endif()
  33. endfunction()
  34. run_cmake(Nothing)
  35. run_cmake(Empty)
  36. run_cmake(Stale)
  37. run_cmake(SharedStateless)