diff --git a/CMakeLists.txt b/CMakeLists.txt index 4f32738..1f5a487 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -69,6 +69,8 @@ option (BUILD_TESTS "Build websocketpp tests." FALSE) if (BUILD_TESTS OR BUILD_EXAMPLES) + enable_testing () + ############ Compiler specific setup set (WEBSOCKETPP_PLATFORM_LIBS "") diff --git a/cmake/CMakeHelpers.cmake b/cmake/CMakeHelpers.cmake index a3e4973..81e75f9 100644 --- a/cmake/CMakeHelpers.cmake +++ b/cmake/CMakeHelpers.cmake @@ -53,6 +53,17 @@ macro (build_executable TARGET_NAME) set_target_properties (${TARGET_NAME} PROPERTIES DEBUG_POSTFIX d) endmacro () +# Build executable and register as test +macro (build_test TARGET_NAME) + build_executable (${TARGET_NAME} ${ARGN}) + + if (${CMAKE_VERSION} VERSION_LESS 3) + message(WARNING "CMake too old to register ${TARGET_NAME} as a test") + else () + add_test(NAME ${TARGET_NAME} COMMAND $) + endif () +endmacro () + # Finalize target for all types macro (final_target) if ("${TARGET_LIB_TYPE}" STREQUAL "EXECUTABLE") diff --git a/test/connection/CMakeLists.txt b/test/connection/CMakeLists.txt index b151ff4..cc501c7 100644 --- a/test/connection/CMakeLists.txt +++ b/test/connection/CMakeLists.txt @@ -4,7 +4,7 @@ file (GLOB HEADER_FILES *.hpp) init_target (test_connection) -build_executable (${TARGET_NAME} ${SOURCE_FILES} ${HEADER_FILES}) +build_test (${TARGET_NAME} ${SOURCE_FILES} ${HEADER_FILES}) link_boost () final_target () diff --git a/test/endpoint/CMakeLists.txt b/test/endpoint/CMakeLists.txt index 5e6cb4c..1b25353 100644 --- a/test/endpoint/CMakeLists.txt +++ b/test/endpoint/CMakeLists.txt @@ -6,7 +6,7 @@ if (OPENSSL_FOUND) init_target (test_endpoint) -build_executable (${TARGET_NAME} ${SOURCE_FILES} ${HEADER_FILES}) +build_test (${TARGET_NAME} ${SOURCE_FILES} ${HEADER_FILES}) link_boost () link_openssl () diff --git a/test/extension/CMakeLists.txt b/test/extension/CMakeLists.txt index df4acbe..9cb8f8a 100644 --- a/test/extension/CMakeLists.txt +++ b/test/extension/CMakeLists.txt @@ -13,7 +13,7 @@ if ( ZLIB_FOUND ) file (GLOB SOURCE permessage_deflate.cpp) init_target (test_permessage_deflate) -build_executable (${TARGET_NAME} ${SOURCE}) +build_test (${TARGET_NAME} ${SOURCE}) link_boost () link_zlib() final_target () diff --git a/test/http/CMakeLists.txt b/test/http/CMakeLists.txt index dd9a4ce..e005477 100644 --- a/test/http/CMakeLists.txt +++ b/test/http/CMakeLists.txt @@ -3,7 +3,7 @@ file (GLOB SOURCE_FILES parser.cpp) init_target (test_http) -build_executable (${TARGET_NAME} ${SOURCE_FILES}) +build_test (${TARGET_NAME} ${SOURCE_FILES}) link_boost () final_target () diff --git a/test/logger/CMakeLists.txt b/test/logger/CMakeLists.txt index 34f25bc..42d8b7c 100644 --- a/test/logger/CMakeLists.txt +++ b/test/logger/CMakeLists.txt @@ -4,7 +4,7 @@ file (GLOB HEADER_FILES *.hpp) init_target (test_logger) -build_executable (${TARGET_NAME} ${SOURCE_FILES} ${HEADER_FILES}) +build_test (${TARGET_NAME} ${SOURCE_FILES} ${HEADER_FILES}) link_boost () final_target () diff --git a/test/message_buffer/CMakeLists.txt b/test/message_buffer/CMakeLists.txt index 7191989..cd17e55 100644 --- a/test/message_buffer/CMakeLists.txt +++ b/test/message_buffer/CMakeLists.txt @@ -11,7 +11,7 @@ set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") file (GLOB SOURCE message.cpp) init_target (test_message_buffer) -build_executable (${TARGET_NAME} ${SOURCE}) +build_test (${TARGET_NAME} ${SOURCE}) link_boost () final_target () set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") diff --git a/test/processors/CMakeLists.txt b/test/processors/CMakeLists.txt index 7441089..42b0468 100644 --- a/test/processors/CMakeLists.txt +++ b/test/processors/CMakeLists.txt @@ -2,7 +2,7 @@ file (GLOB SOURCE processor.cpp) init_target (test_processor) -build_executable (${TARGET_NAME} ${SOURCE}) +build_test (${TARGET_NAME} ${SOURCE}) link_boost () final_target () set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") @@ -11,7 +11,7 @@ set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") file (GLOB SOURCE hybi00.cpp) init_target (test_processor_hybi00) -build_executable (${TARGET_NAME} ${SOURCE}) +build_test (${TARGET_NAME} ${SOURCE}) link_boost () final_target () set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") @@ -20,7 +20,7 @@ set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") file (GLOB SOURCE hybi07.cpp) init_target (test_processor_hybi07) -build_executable (${TARGET_NAME} ${SOURCE}) +build_test (${TARGET_NAME} ${SOURCE}) link_boost () final_target () set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") @@ -29,7 +29,7 @@ set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") file (GLOB SOURCE hybi08.cpp) init_target (test_processor_hybi08) -build_executable (${TARGET_NAME} ${SOURCE}) +build_test (${TARGET_NAME} ${SOURCE}) link_boost () final_target () set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") @@ -40,7 +40,7 @@ if (ZLIB_FOUND) file (GLOB SOURCE hybi13.cpp) init_target (test_processor_hybi13) -build_executable (${TARGET_NAME} ${SOURCE}) +build_test (${TARGET_NAME} ${SOURCE}) link_boost () link_zlib() final_target () @@ -50,7 +50,7 @@ set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") file (GLOB SOURCE extension_permessage_compress.cpp) init_target (test_processor_extension_permessage_compress) -build_executable (${TARGET_NAME} ${SOURCE}) +build_test (${TARGET_NAME} ${SOURCE}) link_boost () link_zlib() final_target () diff --git a/test/random/CMakeLists.txt b/test/random/CMakeLists.txt index d375f4b..1fd459d 100644 --- a/test/random/CMakeLists.txt +++ b/test/random/CMakeLists.txt @@ -2,7 +2,7 @@ file (GLOB SOURCE none.cpp) init_target (test_random_none) -build_executable (${TARGET_NAME} ${SOURCE}) +build_test (${TARGET_NAME} ${SOURCE}) link_boost () final_target () set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") @@ -11,7 +11,7 @@ set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") file (GLOB SOURCE random_device.cpp) init_target (test_random_random_device) -build_executable (${TARGET_NAME} ${SOURCE}) +build_test (${TARGET_NAME} ${SOURCE}) link_boost () final_target () set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") diff --git a/test/roles/CMakeLists.txt b/test/roles/CMakeLists.txt index 0d6771f..5d41137 100644 --- a/test/roles/CMakeLists.txt +++ b/test/roles/CMakeLists.txt @@ -2,7 +2,7 @@ file (GLOB SOURCE client.cpp) init_target (test_roles_client) -build_executable (${TARGET_NAME} ${SOURCE}) +build_test (${TARGET_NAME} ${SOURCE}) link_boost () final_target () set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") @@ -11,7 +11,7 @@ set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") file (GLOB SOURCE server.cpp) init_target (test_roles_server) -build_executable (${TARGET_NAME} ${SOURCE}) +build_test (${TARGET_NAME} ${SOURCE}) link_boost () final_target () set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") diff --git a/test/transport/CMakeLists.txt b/test/transport/CMakeLists.txt index 8e95648..6b44d98 100644 --- a/test/transport/CMakeLists.txt +++ b/test/transport/CMakeLists.txt @@ -4,7 +4,7 @@ if (OPENSSL_FOUND) file (GLOB SOURCE integration.cpp) init_target (test_transport) -build_executable (${TARGET_NAME} ${SOURCE}) +build_test (${TARGET_NAME} ${SOURCE}) link_boost () link_openssl() final_target () @@ -14,7 +14,7 @@ set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") file (GLOB SOURCE asio/timers.cpp) init_target (test_transport_asio_timers) -build_executable (${TARGET_NAME} ${SOURCE}) +build_test (${TARGET_NAME} ${SOURCE}) link_boost () link_openssl() final_target () @@ -24,7 +24,7 @@ set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") file (GLOB SOURCE asio/security.cpp) init_target (test_transport_asio_security) -build_executable (${TARGET_NAME} ${SOURCE}) +build_test (${TARGET_NAME} ${SOURCE}) link_boost () link_openssl() final_target () @@ -36,7 +36,7 @@ endif() file (GLOB SOURCE iostream/base.cpp) init_target (test_transport_iostream_base) -build_executable (${TARGET_NAME} ${SOURCE}) +build_test (${TARGET_NAME} ${SOURCE}) link_boost () final_target () set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") @@ -45,7 +45,7 @@ set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") file (GLOB SOURCE iostream/endpoint.cpp) init_target (test_transport_iostream_endpoint) -build_executable (${TARGET_NAME} ${SOURCE}) +build_test (${TARGET_NAME} ${SOURCE}) link_boost () final_target () set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") @@ -54,7 +54,7 @@ set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") file (GLOB SOURCE iostream/connection.cpp) init_target (test_transport_iostream_connection) -build_executable (${TARGET_NAME} ${SOURCE}) +build_test (${TARGET_NAME} ${SOURCE}) link_boost () final_target () set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") @@ -63,7 +63,7 @@ set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") file (GLOB SOURCE asio/base.cpp) init_target (test_transport_asio_base) -build_executable (${TARGET_NAME} ${SOURCE}) +build_test (${TARGET_NAME} ${SOURCE}) link_boost () final_target () set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") diff --git a/test/utility/CMakeLists.txt b/test/utility/CMakeLists.txt index 8db99e3..3903f13 100644 --- a/test/utility/CMakeLists.txt +++ b/test/utility/CMakeLists.txt @@ -2,7 +2,7 @@ file (GLOB SOURCE close.cpp) init_target (test_close) -build_executable (${TARGET_NAME} ${SOURCE}) +build_test (${TARGET_NAME} ${SOURCE}) link_boost () final_target () set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") @@ -11,7 +11,7 @@ set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") file (GLOB SOURCE error.cpp) init_target (test_error) -build_executable (${TARGET_NAME} ${SOURCE}) +build_test (${TARGET_NAME} ${SOURCE}) link_boost () final_target () set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") @@ -20,7 +20,7 @@ set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") file (GLOB SOURCE frame.cpp) init_target (test_frame) -build_executable (${TARGET_NAME} ${SOURCE}) +build_test (${TARGET_NAME} ${SOURCE}) link_boost () final_target () set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") @@ -29,7 +29,7 @@ set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") file (GLOB SOURCE sha1.cpp) init_target (test_sha1) -build_executable (${TARGET_NAME} ${SOURCE}) +build_test (${TARGET_NAME} ${SOURCE}) link_boost () final_target () set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") @@ -38,7 +38,7 @@ set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") file (GLOB SOURCE uri.cpp) init_target (test_uri) -build_executable (${TARGET_NAME} ${SOURCE}) +build_test (${TARGET_NAME} ${SOURCE}) link_boost () final_target () set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") @@ -47,7 +47,7 @@ set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test") file (GLOB SOURCE utilities.cpp) init_target (test_utilities) -build_executable (${TARGET_NAME} ${SOURCE}) +build_test (${TARGET_NAME} ${SOURCE}) link_boost () final_target () set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")