CMakeLists.txt 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. set(MODULE_NAME "test_rvccomm")
  2. set(MODULE_PREFIX "TEST_RVCCOMM")
  3. include_directories(..)
  4. set(${MODULE_PREFIX}_DRIVER ${MODULE_NAME}.cpp)
  5. set(${MODULE_PREFIX}_TEST_DEFINITIONS "")
  6. file(GLOB ${MODULE_PREFIX}_TESTS "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp")
  7. #Google Test
  8. include_directories(${GTEST_ROOT})
  9. include_directories(${GMOCK_ROOT})
  10. list(APPEND comm_test_libraries RVCComm_a )
  11. list(APPEND GTEST_LIBS gtest)
  12. list(APPEND GTEST_LIBS gtest_main)
  13. list(APPEND GMOCK_LIBS gmock)
  14. list(APPEND GMOCK_LIBS gmock_main)
  15. foreach(test ${${MODULE_PREFIX}_TESTS})
  16. get_filename_component(test_name ${test} NAME_WE)
  17. add_executable(${test_name} ${test})
  18. target_link_directories(${test_name} PRIVATE ${ADD_LIB_DIRS})
  19. target_link_libraries(${test_name} PRIVATE ${comm_test_libraries} PUBLIC CONAN_PKG::gtest)
  20. target_link_libraries(${test_name} PRIVATE ${CONAN_LIBS_LIBSSH2}
  21. ${CONAN_LIBS_CURL}
  22. ${CONAN_LIBS_JSONCPP})
  23. set_property(TARGET ${test_name} PROPERTY FOLDER "test/rvccomm")
  24. if (BUILD_SHARED_LIBS)
  25. set_target_properties(${test_name} PROPERTIES COMPILE_DEFINITIONS
  26. "RVCCOMM_LINKED_AS_STATIC_LIBRARY=1")
  27. else()
  28. set_target_properties(${test_name} PROPERTIES COMPILE_DEFINITIONS "RVCCOMM_LINKED_AS_STATIC_LIBRARY=1")
  29. endif()
  30. # 会将 测试的执行程序生成在指定的文件夹,并且带上编译的配置条件比如 Debug
  31. set_target_properties(${test_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${TESTING_OUTPUT_DIRECTORY}")
  32. message(STATUS "add test case: ${test_name}...")
  33. add_test(NAME ${test_name} COMMAND ${TESTING_OUTPUT_DIRECTORY}/${test_name})
  34. set_tests_properties(${teset_name} PROPERTIES FAIL_REGULAR_EXPRESSION "FAILED;ERROR;Failed;error")
  35. endforeach()
  36. add_executable(SMTest ${CMAKE_CURRENT_SOURCE_DIR}/SM3Test.cxx ${CMAKE_CURRENT_SOURCE_DIR}/../utils.cpp)
  37. target_include_directories(SMTest PRIVATE ${CONAN_INCLUDE_DIRS_LIBKYSM})
  38. target_link_directories(SMTest PRIVATE ${ADD_LIB_DIRS})
  39. set_target_properties(${test_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${TESTING_OUTPUT_DIRECTORY}")
  40. target_include_directories(SMTest PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/..)
  41. target_link_libraries(SMTest PRIVATE ${KYSM_LIBRARY_NAME} ${CONAN_LIBS_LIBSSH2}
  42. ${CONAN_LIBS_CURL}
  43. ${CONAN_LIBS_JSONCPP})
  44. message(STATUS "add test case: SMTest...")
  45. add_test(NAME SMTest COMMAND ${TESTING_OUTPUT_DIRECTORY}/${test_name})
  46. set_tests_properties(SMTest PROPERTIES FAIL_REGULAR_EXPRESSION "FAILED;ERROR;Failed;error")