set(MODULE_NAME "test_rvccomm") set(MODULE_PREFIX "TEST_RVCCOMM") include_directories(..) set(${MODULE_PREFIX}_DRIVER ${MODULE_NAME}.cpp) set(${MODULE_PREFIX}_TEST_DEFINITIONS "") file(GLOB ${MODULE_PREFIX}_TESTS "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp") #Google Test include_directories(${GTEST_ROOT}) include_directories(${GMOCK_ROOT}) list(APPEND comm_test_libraries RVCComm_a ) list(APPEND GTEST_LIBS gtest) list(APPEND GTEST_LIBS gtest_main) list(APPEND GMOCK_LIBS gmock) list(APPEND GMOCK_LIBS gmock_main) foreach(test ${${MODULE_PREFIX}_TESTS}) get_filename_component(test_name ${test} NAME_WE) add_executable(${test_name} ${test}) target_link_directories(${test_name} PRIVATE ${ADD_LIB_DIRS}) target_link_libraries(${test_name} PRIVATE ${comm_test_libraries} PUBLIC CONAN_PKG::gtest) target_link_libraries(${test_name} PRIVATE ${CONAN_LIBS_LIBSSH2} ${CONAN_LIBS_CURL} ${CONAN_LIBS_JSONCPP}) set_property(TARGET ${test_name} PROPERTY FOLDER "test/rvccomm") if (BUILD_SHARED_LIBS) set_target_properties(${test_name} PROPERTIES COMPILE_DEFINITIONS "RVCCOMM_LINKED_AS_STATIC_LIBRARY=1") else() set_target_properties(${test_name} PROPERTIES COMPILE_DEFINITIONS "RVCCOMM_LINKED_AS_STATIC_LIBRARY=1") endif() # 会将 测试的执行程序生成在指定的文件夹,并且带上编译的配置条件比如 Debug set_target_properties(${test_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${TESTING_OUTPUT_DIRECTORY}") message(STATUS "add test case: ${test_name}...") add_test(NAME ${test_name} COMMAND ${TESTING_OUTPUT_DIRECTORY}/${test_name}) set_tests_properties(${teset_name} PROPERTIES FAIL_REGULAR_EXPRESSION "FAILED;ERROR;Failed;error") endforeach() add_executable(SMTest ${CMAKE_CURRENT_SOURCE_DIR}/SM3Test.cxx ${CMAKE_CURRENT_SOURCE_DIR}/../utils.cpp) target_include_directories(SMTest PRIVATE ${CONAN_INCLUDE_DIRS_LIBKYSM}) target_link_directories(SMTest PRIVATE ${ADD_LIB_DIRS}) set_target_properties(${test_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${TESTING_OUTPUT_DIRECTORY}") target_include_directories(SMTest PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/..) target_link_libraries(SMTest PRIVATE ${KYSM_LIBRARY_NAME} ${CONAN_LIBS_LIBSSH2} ${CONAN_LIBS_CURL} ${CONAN_LIBS_JSONCPP}) message(STATUS "add test case: SMTest...") add_test(NAME SMTest COMMAND ${TESTING_OUTPUT_DIRECTORY}/${test_name}) set_tests_properties(SMTest PROPERTIES FAIL_REGULAR_EXPRESSION "FAILED;ERROR;Failed;error")