CMakeLists.txt 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. set(MODULE_NAME "test_libtoolkit")
  2. set(MODULE_PREFIX "TEST_LIBTOOLKIT")
  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. #set(${MODULE_PREFIX}_TESTS
  8. # test_base64.cpp
  9. # test_iobuffer.cpp
  10. # )
  11. # CTest
  12. #list(APPEND ${MODULE_PREFIX}_TEST_DEFINITIONS "-DTEST_WITH_CTEST")
  13. # Create a test driver and source list for building test programs.
  14. #create_test_sourcelist(${MODULE_PREFIX}_SRCS #source list name
  15. # ${${MODULE_PREFIX}_DRIVER} # driver name
  16. # ${${MODULE_PREFIX}_TESTS} # test list
  17. # )# EXTRA_INCLUDE include.h FUNCTION function.
  18. # add_definitions(${${MODULE_PREFIX}_TEST_DEFINITIONS})
  19. # add_executable(${MODULE_NAME} ${${MODULE_PREFIX}_SRCS})
  20. # set(${MODULE_PREFIX}_LIBS ${${MODULE_PREFIX}_LIBS} toolkit_a)
  21. # target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
  22. # set_target_properties(${MODULE_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${TESTING_OUTPUT_DIRECTORY}")
  23. # foreach(test ${${MODULE_PREFIX}_TESTS})
  24. # get_filename_component(test_name ${test} NAME_WE)
  25. # add_test(NAME ${test_name} COMMAND ${TESTING_OUTPUT_DIRECTORY}/${MODULE_NAME} ${test_name})
  26. # endforeach()
  27. # set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "test/libtookit")
  28. #Google Test
  29. include_directories(${GTEST_ROOT})
  30. list(APPEND comm_test_libraries gtest)
  31. list(APPEND comm_test_libraries gtest_main)
  32. list(APPEND comm_test_libraries libtoolkit_a)
  33. # set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS")
  34. foreach(test ${${MODULE_PREFIX}_TESTS})
  35. get_filename_component(test_name ${test} NAME_WE)
  36. add_executable(${test_name} ${test})
  37. target_link_libraries(${test_name} ${comm_test_libraries})
  38. set_property(TARGET ${test_name} PROPERTY FOLDER "test/libtoolkit")
  39. # 会将 测试的执行程序生成在指定的文件夹,并且带上编译的配置条件比如 Debug
  40. set_target_properties(${test_name} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${TESTING_OUTPUT_DIRECTORY}")
  41. add_test(NAME ${test_name} COMMAND ${TESTING_OUTPUT_DIRECTORY}/${test_name})
  42. set_tests_properties(${teset_name} PROPERTIES FAIL_REGULAR_EXPRESSION "FAILED;ERROR;Failed;error")
  43. endforeach()