link_libraries(${PROJECT_NAME}) if(WIN32) link_libraries(iphlpapi) endif(WIN32) set(UNITTEST_SOURCES unittests/main.cc unittests/Base64Test.cc unittests/UrlCodecTest.cc unittests/GzipTest.cc unittests/HttpViewDataTest.cc unittests/CookieTest.cc unittests/ClassNameTest.cc unittests/HttpDateTest.cc unittests/HttpHeaderTest.cc unittests/MD5Test.cc unittests/MsgBufferTest.cc unittests/OStringStreamTest.cc unittests/PubSubServiceUnittest.cc unittests/Sha1Test.cc unittests/FileTypeTest.cc unittests/DrObjectTest.cc unittests/HttpFullDateTest.cc unittests/MainLoopTest.cc unittests/CacheMapTest.cc unittests/StringOpsTest.cc unittests/ControllerCreationTest.cc unittests/MultiPartParserTest.cc unittests/SlashRemoverTest.cc unittests/UtilitiesTest.cc unittests/UuidUnittest.cc ) if(DROGON_CXX_STANDARD GREATER_EQUAL 20 AND HAS_COROUTINE) set(UNITTEST_SOURCES ${UNITTEST_SOURCES} unittests/CoroutineTest.cc) endif() if(Brotli_FOUND) set(UNITTEST_SOURCES ${UNITTEST_SOURCES} unittests/BrotliTest.cc) endif() if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC" AND BUILD_SHARED_LIBS) set(UNITTEST_SOURCES ${UNITTEST_SOURCES} ../src/HttpUtils.cc) else() set(UNITTEST_SOURCES ${UNITTEST_SOURCES} ../src/HttpFileImpl.cc unittests/HttpFileTest.cc unittests/WebsocketResponseTest.cc) endif() add_executable(unittest ${UNITTEST_SOURCES}) if (BUILD_CTL) set(INTEGRATION_TEST_CLIENT_SOURCES integration_test/client/main.cc integration_test/client/WebSocketTest.cc integration_test/client/MultipleWsTest.cc integration_test/client/HttpPipeliningTest.cc integration_test/client/RequestStreamTest.cc) add_executable(integration_test_client ${INTEGRATION_TEST_CLIENT_SOURCES}) set(INTEGRATION_TEST_SERVER_SOURCES integration_test/server/CustomCtrl.cc integration_test/server/CustomHeaderFilter.cc integration_test/server/DoNothingPlugin.cc integration_test/server/ForwardCtrl.cc integration_test/server/JsonTestController.cc integration_test/server/ListParaCtl.cc integration_test/server/PipeliningTest.cc integration_test/server/TestController.cc integration_test/server/TestPlugin.cc integration_test/server/TestViewCtl.cc integration_test/server/WebSocketTest.cc integration_test/server/api_Attachment.cc integration_test/server/api_v1_ApiTest.cc integration_test/server/TimeFilter.cc integration_test/server/DigestAuthFilter.cc integration_test/server/MethodTest.cc integration_test/server/RangeTestController.cc integration_test/server/BeginAdviceTest.cc integration_test/server/MiddlewareTest.cc integration_test/server/RequestStreamTestCtrl.cc integration_test/server/main.cc) if(DROGON_CXX_STANDARD GREATER_EQUAL 20 AND HAS_COROUTINE) set(INTEGRATION_TEST_SERVER_SOURCES ${INTEGRATION_TEST_SERVER_SOURCES} integration_test/server/CoroFilter.cpp integration_test/server/api_v1_CoroTest.cc) set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED TRUE) endif(DROGON_CXX_STANDARD GREATER_EQUAL 20 AND HAS_COROUTINE) add_executable(integration_test_server ${INTEGRATION_TEST_SERVER_SOURCES}) drogon_create_views(integration_test_server ${CMAKE_CURRENT_SOURCE_DIR}/integration_test/server ${CMAKE_CURRENT_BINARY_DIR}) add_dependencies(integration_test_server drogon_ctl) add_custom_command( TARGET integration_test_server POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PROJECT_SOURCE_DIR}/config.example.json ${PROJECT_SOURCE_DIR}/drogon.jpg ${CMAKE_CURRENT_SOURCE_DIR}/integration_test/server/index.html ${CMAKE_CURRENT_SOURCE_DIR}/integration_test/server/main.cc ${CMAKE_CURRENT_SOURCE_DIR}/integration_test/server/test.md ${CMAKE_CURRENT_SOURCE_DIR}/integration_test/server/index.html.gz ${CMAKE_CURRENT_SOURCE_DIR}/integration_test/server/中文.txt ${PROJECT_SOURCE_DIR}/trantor/trantor/tests/server.crt ${PROJECT_SOURCE_DIR}/trantor/trantor/tests/server.key $) add_custom_command( TARGET integration_test_server POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/integration_test/server/a-directory $/a-directory) endif(BUILD_CTL) set(COOKIE_SAME_SITE main_CookieSameSite.cc CookieSameSite.cc ) add_executable(cookie_same_site ${COOKIE_SAME_SITE}) add_executable(real_ip_resolver RealIpResolverTest.cc) set(tests unittest cookie_same_site real_ip_resolver) if (BUILD_CTL) list(APPEND tests integration_test_server integration_test_client) endif(BUILD_CTL) set_property(TARGET ${tests} PROPERTY CXX_STANDARD ${DROGON_CXX_STANDARD}) set_property(TARGET ${tests} PROPERTY CXX_STANDARD_REQUIRED ON) set_property(TARGET ${tests} PROPERTY CXX_EXTENSIONS OFF) ParseAndAddDrogonTests(unittest) ParseAndAddDrogonTests(cookie_same_site) ParseAndAddDrogonTests(real_ip_resolver)