Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

69 строки
3.5 KiB

  1. # Initialize ######################################################################################
  2. Include ( cotire OPTIONAL RESULT_VARIABLE HAS_COTIRE )
  3. Include ( pedantic OPTIONAL RESULT_VARIABLE HAS_PEDANTIC )
  4. Include ( cmake_tests OPTIONAL RESULT_VARIABLE HAS_CMAKE_TESTS )
  5. # Test Helper #####################################################################################
  6. File ( GLOB_RECURSE SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/helper/*.cpp )
  7. Add_Library ( cppcurl-test-helper STATIC ${SOURCE_FILES} )
  8. Target_Include_Directories ( cppcurl-test-helper
  9. PUBLIC
  10. $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/helper>
  11. $<INSTALL_INTERFACE:${CPPCURL_INSTALL_DIR_INCLUDE}> )
  12. Target_Include_Directories ( cppcurl-test-helper
  13. SYSTEM PUBLIC
  14. ${MICROHTTPD_INCLUDE_DIRS} )
  15. Target_Link_Libraries ( cppcurl-test-helper
  16. PUBLIC
  17. cppcurl-mock
  18. GMock::GMock )
  19. # Test ############################################################################################
  20. Find_Package ( GTest )
  21. If ( NOT "${GTest_FOUND}" )
  22. Return ( )
  23. EndIf ( )
  24. File ( GLOB_RECURSE CPPCURL_TEST_HEADER_FILES
  25. ${CMAKE_CURRENT_SOURCE_DIR}/*.h )
  26. File ( GLOB_RECURSE CPPCURL_TEST_INLINE_FILES
  27. ${CMAKE_CURRENT_SOURCE_DIR}/*.inl )
  28. File ( GLOB_RECURSE CPPCURL_TEST_SOURCE_FILES
  29. RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
  30. ${CMAKE_CURRENT_SOURCE_DIR}/cppcurl/*.cpp )
  31. ForEach ( FILE IN LISTS CPPCURL_TEST_SOURCE_FILES )
  32. # add test
  33. Get_Filename_Component ( TEST_DIR ${FILE} DIRECTORY )
  34. Get_Filename_Component ( TEST_NAME ${FILE} NAME_WE )
  35. Set ( TEST_NAME "${TEST_DIR}/${TEST_NAME}" )
  36. String ( REPLACE "\\" "-" TEST_NAME "${TEST_NAME}" )
  37. String ( REPLACE "/" "-" TEST_NAME "${TEST_NAME}" )
  38. String ( REPLACE "_" "-" TEST_NAME "${TEST_NAME}" )
  39. Set ( TEST_NAME "test-${TEST_NAME}" )
  40. Add_Executable ( ${TEST_NAME}
  41. EXCLUDE_FROM_ALL
  42. ${CPPCURL_TEST_HEADER_FILES}
  43. ${CPPCURL_TEST_INLINE_FILES}
  44. ${FILE} )
  45. Target_Link_Libraries ( ${TEST_NAME}
  46. PUBLIC
  47. cppcurl
  48. GTest::Main )
  49. # pedantic
  50. If ( HAS_PEDANTIC )
  51. Pedantic_Apply_Flags_Target ( ${TEST_NAME} ALL )
  52. EndIf ( )
  53. # test
  54. If ( HAS_CMAKE_TESTS )
  55. Add_CMake_Test ( NAME ${TEST_NAME} TARGET ${TEST_NAME} GROUP cppcurl )
  56. Else ( )
  57. Add_Test ( NAME ${TEST_NAME} COMMAND ${TEST_NAME} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
  58. EndIf ( )
  59. EndForEach ( )