use ctest for testing
This commit is contained in:
		
							
								
								
									
										5
									
								
								.github/workflows/unittest_linux.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.github/workflows/unittest_linux.yml
									
									
									
									
										vendored
									
									
								
							@@ -9,5 +9,6 @@ jobs:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: actions/checkout@v1
 | 
			
		||||
    - name: make test_make
 | 
			
		||||
      run: make test_make
 | 
			
		||||
    - uses: seanmiddleditch/gha-setup-ninja@master
 | 
			
		||||
    - name: make test
 | 
			
		||||
      run: make test
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										14
									
								
								.github/workflows/unittest_linux_asan.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								.github/workflows/unittest_linux_asan.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
name: linux
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
    paths-ignore:
 | 
			
		||||
    - 'docs/**'
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  linux:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: actions/checkout@v1
 | 
			
		||||
    - uses: seanmiddleditch/gha-setup-ninja@master
 | 
			
		||||
    - name: make test_asan
 | 
			
		||||
      run: make test_asan
 | 
			
		||||
@@ -9,6 +9,7 @@ jobs:
 | 
			
		||||
    runs-on: macOS-latest
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: actions/checkout@v1
 | 
			
		||||
    - uses: seanmiddleditch/gha-setup-ninja@master
 | 
			
		||||
    - name: install mbedtls
 | 
			
		||||
      run: brew install mbedtls
 | 
			
		||||
    - name: make test
 | 
			
		||||
 
 | 
			
		||||
@@ -9,6 +9,7 @@ jobs:
 | 
			
		||||
    runs-on: macOS-latest
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: actions/checkout@v1
 | 
			
		||||
    - uses: seanmiddleditch/gha-setup-ninja@master
 | 
			
		||||
    - name: install openssl
 | 
			
		||||
      run: brew install openssl@1.1
 | 
			
		||||
    - name: make test
 | 
			
		||||
 
 | 
			
		||||
@@ -9,5 +9,6 @@ jobs:
 | 
			
		||||
    runs-on: macOS-latest
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: actions/checkout@v1
 | 
			
		||||
    - name: make test_tsan
 | 
			
		||||
      run: make test_tsan
 | 
			
		||||
    - uses: seanmiddleditch/gha-setup-ninja@master
 | 
			
		||||
    - name: make test_tsan_sectransport
 | 
			
		||||
      run: make test_tsan_sectransport
 | 
			
		||||
 
 | 
			
		||||
@@ -273,6 +273,7 @@ if (USE_WS OR USE_TEST)
 | 
			
		||||
    add_subdirectory(ws)
 | 
			
		||||
  endif()
 | 
			
		||||
  if (USE_TEST)
 | 
			
		||||
    enable_testing()
 | 
			
		||||
    add_subdirectory(test)
 | 
			
		||||
  endif()
 | 
			
		||||
endif()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										16
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								README.md
									
									
									
									
									
								
							@@ -92,18 +92,20 @@ If your company or project is using this library, feel free to open an issue or
 | 
			
		||||
 | 
			
		||||
| OS                | TLS               | Sanitizer         | Status            |
 | 
			
		||||
|-------------------|-------------------|-------------------|-------------------|
 | 
			
		||||
| Linux             | OpenSSL           | None              | [![Build2][1]][7] |
 | 
			
		||||
| macOS             | Secure Transport  | Thread Sanitizer  | [![Build2][2]][7] |
 | 
			
		||||
| macOS             | OpenSSL           | Thread Sanitizer  | [![Build2][3]][7] |
 | 
			
		||||
| macOS             | MbedTLS           | Thread Sanitizer  | [![Build2][4]][7] |
 | 
			
		||||
| Windows           | Disabled          | None              | [![Build2][5]][7] |
 | 
			
		||||
| UWP               | Disabled          | None              | [![Build2][6]][7] |
 | 
			
		||||
| Linux             | OpenSSL           | None              | [![Build2][1]][0] |
 | 
			
		||||
| macOS             | Secure Transport  | Thread Sanitizer  | [![Build2][2]][0] |
 | 
			
		||||
| macOS             | OpenSSL           | Thread Sanitizer  | [![Build2][3]][0] |
 | 
			
		||||
| macOS             | MbedTLS           | Thread Sanitizer  | [![Build2][4]][0] |
 | 
			
		||||
| Windows           | Disabled          | None              | [![Build2][5]][0] |
 | 
			
		||||
| UWP               | Disabled          | None              | [![Build2][6]][0] |
 | 
			
		||||
| Linux             | OpenSSL           | Address Sanitizer | [![Build2][7]][0] |
 | 
			
		||||
 | 
			
		||||
[0]: https://github.com/machinezone/IXWebSocket
 | 
			
		||||
[1]: https://github.com/machinezone/IXWebSocket/workflows/linux/badge.svg
 | 
			
		||||
[2]: https://github.com/machinezone/IXWebSocket/workflows/mac_tsan_sectransport/badge.svg
 | 
			
		||||
[3]: https://github.com/machinezone/IXWebSocket/workflows/mac_tsan_openssl/badge.svg
 | 
			
		||||
[4]: https://github.com/machinezone/IXWebSocket/workflows/mac_tsan_mbedtls/badge.svg
 | 
			
		||||
[5]: https://github.com/machinezone/IXWebSocket/workflows/windows/badge.svg
 | 
			
		||||
[6]: https://github.com/machinezone/IXWebSocket/workflows/uwp/badge.svg
 | 
			
		||||
[7]: https://github.com/machinezone/IXWebSocket
 | 
			
		||||
[7]: https://github.com/machinezone/IXWebSocket/workflows/linux_asan/badge.svg
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										79
									
								
								makefile
									
									
									
									
									
								
							
							
						
						
									
										79
									
								
								makefile
									
									
									
									
									
								
							@@ -110,71 +110,30 @@ format:
 | 
			
		||||
test_server:
 | 
			
		||||
	(cd test && npm i ws && node broadcast-server.js)
 | 
			
		||||
 | 
			
		||||
# env TEST=Websocket_server make test
 | 
			
		||||
# env TEST=Websocket_chat make test
 | 
			
		||||
# env TEST=heartbeat make test
 | 
			
		||||
build_test:
 | 
			
		||||
	mkdir -p build && (cd build ; cmake -GNinja -DCMAKE_BUILD_TYPE=Debug -DUSE_TLS=1 -DUSE_TEST=1 .. ; ninja install)
 | 
			
		||||
test:
 | 
			
		||||
	mkdir -p build && (cd build ; cmake -GNinja -DCMAKE_BUILD_TYPE=Debug -DUSE_PYTHON=1 -DUSE_TLS=1 -DUSE_TEST=1 ..)
 | 
			
		||||
	(cd build ; ninja)
 | 
			
		||||
	(cd build ; ninja test)
 | 
			
		||||
 | 
			
		||||
test: build_test
 | 
			
		||||
	(cd test ; python2.7 run.py -r)
 | 
			
		||||
 | 
			
		||||
test_make:
 | 
			
		||||
	mkdir -p build && (cd build ; cmake -DCMAKE_BUILD_TYPE=Debug -DUSE_PYTHON=1 -DUSE_TLS=1 -DUSE_WS=1 -DUSE_TEST=1 .. ; make -j 4)
 | 
			
		||||
	(cd test ; python2.7 run.py -r)
 | 
			
		||||
 | 
			
		||||
test_tsan:
 | 
			
		||||
	mkdir -p build && (cd build && cmake -GXcode -DCMAKE_BUILD_TYPE=Debug -DUSE_PYTHON=1 -DUSE_TLS=1 -DUSE_TEST=1 .. && xcodebuild -project ixwebsocket.xcodeproj -target ixwebsocket_unittest -enableThreadSanitizer YES)
 | 
			
		||||
	(cd build/test ; ln -sf Debug/ixwebsocket_unittest)
 | 
			
		||||
	(cd test ; python2.7 run.py -r)
 | 
			
		||||
 | 
			
		||||
test_ubsan:
 | 
			
		||||
	mkdir -p build && (cd build && cmake -GXcode -DCMAKE_BUILD_TYPE=Debug -DUSE_PYTHON=1 -DUSE_TLS=1 -DUSE_TEST=1 .. && xcodebuild -project ixwebsocket.xcodeproj -target ixwebsocket_unittest -enableUndefinedBehaviorSanitizer YES)
 | 
			
		||||
	(cd build/test ; ln -sf Debug/ixwebsocket_unittest)
 | 
			
		||||
	(cd test ; python2.7 run.py -r)
 | 
			
		||||
 | 
			
		||||
test_asan: build_test_asan
 | 
			
		||||
	(cd test ; python2.7 run.py -r)
 | 
			
		||||
 | 
			
		||||
build_test_asan:
 | 
			
		||||
	mkdir -p build && (cd build && cmake -GXcode -DCMAKE_BUILD_TYPE=Debug -DUSE_PYTHON=1 -DUSE_TLS=1 -DUSE_TEST=1 .. && xcodebuild -project ixwebsocket.xcodeproj -target ixwebsocket_unittest -enableAddressSanitizer YES)
 | 
			
		||||
	(cd build/test ; ln -sf Debug/ixwebsocket_unittest)
 | 
			
		||||
 | 
			
		||||
test_tsan_openssl:
 | 
			
		||||
	mkdir -p build && (cd build && cmake -GXcode -DCMAKE_BUILD_TYPE=Debug -DUSE_PYTHON=1 -DUSE_TLS=1 -DUSE_TEST=1 -DUSE_OPEN_SSL=1 .. && xcodebuild -project ixwebsocket.xcodeproj -target ixwebsocket_unittest -enableThreadSanitizer YES)
 | 
			
		||||
	(cd build/test ; ln -sf Debug/ixwebsocket_unittest)
 | 
			
		||||
	(cd test ; python2.7 run.py -r)
 | 
			
		||||
 | 
			
		||||
test_ubsan_openssl:
 | 
			
		||||
	mkdir -p build && (cd build && cmake -GXcode -DCMAKE_BUILD_TYPE=Debug -DUSE_PYTHON=1 -DUSE_TLS=1 -DUSE_TEST=1 -DUSE_OPEN_SSL=1 .. && xcodebuild -project ixwebsocket.xcodeproj -target ixwebsocket_unittest -enableUndefinedBehaviorSanitizer YES)
 | 
			
		||||
	(cd build/test ; ln -sf Debug/ixwebsocket_unittest)
 | 
			
		||||
	(cd test ; python2.7 run.py -r)
 | 
			
		||||
 | 
			
		||||
test_tsan_openssl_release:
 | 
			
		||||
	mkdir -p build && (cd build && cmake -GXcode -DCMAKE_BUILD_TYPE=Release -DUSE_PYTHON=1 -DUSE_TLS=1 -DUSE_TEST=1 -DUSE_OPEN_SSL=1 .. && xcodebuild -project ixwebsocket.xcodeproj -configuration Release -target ixwebsocket_unittest -enableThreadSanitizer YES)
 | 
			
		||||
	(cd build/test ; ln -sf Release/ixwebsocket_unittest)
 | 
			
		||||
	(cd test ; python2.7 run.py -r)
 | 
			
		||||
test_asan:
 | 
			
		||||
	mkdir -p build && (cd build ; cmake -GNinja -DCMAKE_BUILD_TYPE=Debug -DUSE_PYTHON=1 -DUSE_TLS=1 -DUSE_TEST=1 .. -DCMAKE_C_FLAGS="-fsanitize=address -fno-omit-frame-pointer" -DCMAKE_CXX_FLAGS="-fsanitize=address -fno-omit-frame-pointer")
 | 
			
		||||
	(cd build ; ninja)
 | 
			
		||||
	(cd build ; ninja test)
 | 
			
		||||
 | 
			
		||||
test_tsan_mbedtls:
 | 
			
		||||
	mkdir -p build && (cd build && cmake -GXcode -DCMAKE_BUILD_TYPE=Debug -DUSE_PYTHON=1 -DUSE_TLS=1 -DUSE_TEST=1 -DUSE_MBED_TLS=1 .. && xcodebuild -project ixwebsocket.xcodeproj -target ixwebsocket_unittest -enableThreadSanitizer YES)
 | 
			
		||||
	(cd build/test ; ln -sf Debug/ixwebsocket_unittest)
 | 
			
		||||
	(cd test ; python2.7 run.py -r)
 | 
			
		||||
	mkdir -p build && (cd build ; cmake -GNinja -DCMAKE_BUILD_TYPE=Debug -DUSE_PYTHON=1 -DUSE_TLS=1 -DUSE_MBED_TLS=1 -DUSE_TEST=1 .. -DCMAKE_C_FLAGS="-fsanitize=thread -fno-omit-frame-pointer" -DCMAKE_CXX_FLAGS="-fsanitize=thread -fno-omit-frame-pointer")
 | 
			
		||||
	(cd build ; ninja)
 | 
			
		||||
	(cd build ; ninja test)
 | 
			
		||||
 | 
			
		||||
build_test_openssl:
 | 
			
		||||
	mkdir -p build && (cd build ; cmake -GNinja -DCMAKE_BUILD_TYPE=Debug -DUSE_PYTHON=1 -DUSE_TLS=1 -DUSE_OPEN_SSL=1 -DUSE_TEST=1 .. ; ninja install)
 | 
			
		||||
test_tsan_openssl:
 | 
			
		||||
	mkdir -p build && (cd build ; cmake -GNinja -DCMAKE_BUILD_TYPE=Debug -DUSE_PYTHON=1 -DUSE_TLS=1 -DUSE_OPENS_SSL=1 -DUSE_TEST=1 .. -DCMAKE_C_FLAGS="-fsanitize=thread -fno-omit-frame-pointer" -DCMAKE_CXX_FLAGS="-fsanitize=thread -fno-omit-frame-pointer")
 | 
			
		||||
	(cd build ; ninja)
 | 
			
		||||
	(cd build ; ninja test)
 | 
			
		||||
 | 
			
		||||
test_openssl: build_test_openssl
 | 
			
		||||
	(cd test ; python2.7 run.py -r)
 | 
			
		||||
 | 
			
		||||
build_test_mbedtls:
 | 
			
		||||
	mkdir -p build && (cd build ; cmake -DCMAKE_BUILD_TYPE=Debug -DUSE_PYTHON=1 -DUSE_TLS=1 -DUSE_MBED_TLS=1 -DUSE_TEST=1 .. ; make -j 4)
 | 
			
		||||
 | 
			
		||||
test_mbedtls: build_test_mbedtls
 | 
			
		||||
	(cd test ; python2.7 run.py -r)
 | 
			
		||||
 | 
			
		||||
test_no_ssl:
 | 
			
		||||
	mkdir -p build && (cd build ; cmake -DCMAKE_BUILD_TYPE=Debug -DUSE_TEST=1 .. ; make -j 4)
 | 
			
		||||
	(cd test ; python2.7 run.py -r)
 | 
			
		||||
test_tsan_sectransport:
 | 
			
		||||
	mkdir -p build && (cd build ; cmake -GNinja -DCMAKE_BUILD_TYPE=Debug -DUSE_PYTHON=1 -DUSE_TLS=1 -DUSE_OPENS_SSL=1 -DUSE_TEST=1 .. -DCMAKE_C_FLAGS="-fsanitize=thread -fno-omit-frame-pointer" -DCMAKE_CXX_FLAGS="-fsanitize=thread -fno-omit-frame-pointer")
 | 
			
		||||
	(cd build ; ninja)
 | 
			
		||||
	(cd build ; ninja test)
 | 
			
		||||
 | 
			
		||||
ws_test: ws
 | 
			
		||||
	(cd ws ; env DEBUG=1 PATH=../ws/build:$$PATH bash test_ws.sh)
 | 
			
		||||
 
 | 
			
		||||
@@ -9,59 +9,37 @@ set (CMAKE_CXX_STANDARD 14)
 | 
			
		||||
 | 
			
		||||
option(USE_TLS "Add TLS support" ON)
 | 
			
		||||
 | 
			
		||||
include_directories(
 | 
			
		||||
  ${PROJECT_SOURCE_DIR}/Catch2/single_include
 | 
			
		||||
  ../third_party
 | 
			
		||||
  ../third_party/msgpack11
 | 
			
		||||
  ../ws
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
add_definitions(-DSPDLOG_COMPILED_LIB=1)
 | 
			
		||||
 | 
			
		||||
find_package(JsonCpp)
 | 
			
		||||
if (NOT JSONCPP_FOUND)
 | 
			
		||||
  include_directories(../third_party/jsoncpp)
 | 
			
		||||
  set(JSONCPP_SOURCES ../third_party/jsoncpp/jsoncpp.cpp)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# Shared sources
 | 
			
		||||
set (SOURCES
 | 
			
		||||
  ${JSONCPP_SOURCES}
 | 
			
		||||
 | 
			
		||||
  test_runner.cpp
 | 
			
		||||
  IXTest.cpp
 | 
			
		||||
  ../third_party/msgpack11/msgpack11.cpp
 | 
			
		||||
 | 
			
		||||
  IXSocketTest.cpp
 | 
			
		||||
  IXSocketConnectTest.cpp
 | 
			
		||||
set (TEST_TARGET_NAMES
 | 
			
		||||
  IXSocketTest
 | 
			
		||||
  IXSocketConnectTest
 | 
			
		||||
  # IXWebSocketLeakTest.cpp # commented until we have a fix for #224
 | 
			
		||||
  IXWebSocketServerTest.cpp
 | 
			
		||||
  IXWebSocketTestConnectionDisconnection.cpp
 | 
			
		||||
  IXUrlParserTest.cpp
 | 
			
		||||
  IXWebSocketServerTest.cpp
 | 
			
		||||
  IXHttpClientTest.cpp
 | 
			
		||||
  IXHttpServerTest.cpp
 | 
			
		||||
  IXUnityBuildsTest.cpp
 | 
			
		||||
  IXHttpTest.cpp
 | 
			
		||||
  IXDNSLookupTest.cpp
 | 
			
		||||
  IXWebSocketSubProtocolTest.cpp
 | 
			
		||||
  IXSentryClientTest.cpp
 | 
			
		||||
  IXWebSocketChatTest.cpp
 | 
			
		||||
  IXWebSocketBroadcastTest.cpp
 | 
			
		||||
  IXWebSocketPerMessageDeflateCompressorTest.cpp
 | 
			
		||||
  IXStreamSqlTest.cpp
 | 
			
		||||
  IXWebSocketServerTest
 | 
			
		||||
  IXWebSocketTestConnectionDisconnection
 | 
			
		||||
  IXUrlParserTest
 | 
			
		||||
  IXHttpClientTest
 | 
			
		||||
  IXHttpServerTest
 | 
			
		||||
  IXUnityBuildsTest
 | 
			
		||||
  IXHttpTest
 | 
			
		||||
  IXDNSLookupTest
 | 
			
		||||
  IXWebSocketSubProtocolTest
 | 
			
		||||
  IXSentryClientTest
 | 
			
		||||
  IXWebSocketChatTest
 | 
			
		||||
  IXWebSocketBroadcastTest
 | 
			
		||||
  IXWebSocketPerMessageDeflateCompressorTest
 | 
			
		||||
  IXStreamSqlTest
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
# Some unittest don't work on windows yet
 | 
			
		||||
# Windows without TLS does not have hmac yet
 | 
			
		||||
if (UNIX)
 | 
			
		||||
  list(APPEND SOURCES
 | 
			
		||||
    IXWebSocketCloseTest.cpp
 | 
			
		||||
    IXCobraChatTest.cpp
 | 
			
		||||
    IXCobraMetricsPublisherTest.cpp
 | 
			
		||||
    IXCobraToSentryBotTest.cpp
 | 
			
		||||
    IXCobraToStatsdBotTest.cpp
 | 
			
		||||
    IXCobraToStdoutBotTest.cpp
 | 
			
		||||
  list(APPEND TEST_TARGET_NAMES
 | 
			
		||||
    IXWebSocketCloseTest
 | 
			
		||||
    IXCobraChatTest
 | 
			
		||||
    IXCobraMetricsPublisherTest
 | 
			
		||||
    IXCobraToSentryBotTest
 | 
			
		||||
    IXCobraToStatsdBotTest
 | 
			
		||||
    IXCobraToStdoutBotTest
 | 
			
		||||
  )
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
@@ -71,19 +49,9 @@ endif()
 | 
			
		||||
 | 
			
		||||
# Disable tests for now that are failing or not reliable
 | 
			
		||||
 | 
			
		||||
add_executable(ixwebsocket_unittest ${SOURCES})
 | 
			
		||||
 | 
			
		||||
if (MAC)
 | 
			
		||||
  add_sanitizers(ixwebsocket_unittest)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if (APPLE AND USE_TLS)
 | 
			
		||||
  target_link_libraries(ixwebsocket_unittest "-framework foundation" "-framework security")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if (JSONCPP_FOUND)
 | 
			
		||||
  target_include_directories(ixwebsocket_unittest PUBLIC ${JSONCPP_INCLUDE_DIRS})
 | 
			
		||||
  target_link_libraries(ixwebsocket_unittest ${JSONCPP_LIBRARIES})
 | 
			
		||||
find_package(JsonCpp)
 | 
			
		||||
if (NOT JSONCPP_FOUND)
 | 
			
		||||
  set(JSONCPP_SOURCES ../third_party/jsoncpp/jsoncpp.cpp)
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
if (USE_PYTHON)
 | 
			
		||||
@@ -97,19 +65,67 @@ if (USE_PYTHON)
 | 
			
		||||
  message("Python_LIBRARIES:${Python_LIBRARIES}")
 | 
			
		||||
endif()
 | 
			
		||||
 | 
			
		||||
# library with the most dependencies come first
 | 
			
		||||
target_link_libraries(ixwebsocket_unittest ixbots)
 | 
			
		||||
target_link_libraries(ixwebsocket_unittest ixsnake)
 | 
			
		||||
target_link_libraries(ixwebsocket_unittest ixcobra)
 | 
			
		||||
target_link_libraries(ixwebsocket_unittest ixsentry)
 | 
			
		||||
target_link_libraries(ixwebsocket_unittest ixredis)
 | 
			
		||||
target_link_libraries(ixwebsocket_unittest ixwebsocket)
 | 
			
		||||
target_link_libraries(ixwebsocket_unittest ixcrypto)
 | 
			
		||||
target_link_libraries(ixwebsocket_unittest ixcore)
 | 
			
		||||
add_library(ixwebsocket_test)
 | 
			
		||||
target_sources(ixwebsocket_test PRIVATE 
 | 
			
		||||
    ${JSONCPP_SOURCES}
 | 
			
		||||
    test_runner.cpp
 | 
			
		||||
    IXTest.cpp
 | 
			
		||||
    ../third_party/msgpack11/msgpack11.cpp
 | 
			
		||||
)
 | 
			
		||||
target_compile_definitions(ixwebsocket_test PRIVATE ${TEST_PROGRAMS_DEFINITIONS})
 | 
			
		||||
target_include_directories(ixwebsocket_test PRIVATE
 | 
			
		||||
  ${PROJECT_SOURCE_DIR}/Catch2/single_include
 | 
			
		||||
  ../third_party
 | 
			
		||||
)
 | 
			
		||||
target_link_libraries(ixwebsocket_test ixsnake)
 | 
			
		||||
target_link_libraries(ixwebsocket_test ixcobra)
 | 
			
		||||
target_link_libraries(ixwebsocket_test ixwebsocket)
 | 
			
		||||
target_link_libraries(ixwebsocket_test spdlog)
 | 
			
		||||
 | 
			
		||||
target_link_libraries(ixwebsocket_unittest spdlog)
 | 
			
		||||
if (USE_PYTHON)
 | 
			
		||||
  target_link_libraries(ixwebsocket_unittest ${Python_LIBRARIES})
 | 
			
		||||
foreach(TEST_TARGET_NAME ${TEST_TARGET_NAMES})
 | 
			
		||||
  add_executable(${TEST_TARGET_NAME}
 | 
			
		||||
    ${TEST_TARGET_NAME}.cpp
 | 
			
		||||
  )
 | 
			
		||||
 | 
			
		||||
  target_include_directories(${TEST_TARGET_NAME} PRIVATE
 | 
			
		||||
    ${PROJECT_SOURCE_DIR}/Catch2/single_include
 | 
			
		||||
    ../third_party
 | 
			
		||||
    ../third_party/msgpack11
 | 
			
		||||
  )
 | 
			
		||||
 | 
			
		||||
  target_compile_definitions(${TEST_TARGET_NAME} PRIVATE SPDLOG_COMPILED_LIB=1)
 | 
			
		||||
 | 
			
		||||
  if (NOT JSONCPP_FOUND)
 | 
			
		||||
    target_include_directories(${TEST_TARGET_NAME} PRIVATE ../third_party/jsoncpp)
 | 
			
		||||
  endif()
 | 
			
		||||
 | 
			
		||||
install(TARGETS ixwebsocket_unittest DESTINATION bin)
 | 
			
		||||
  if (APPLE AND USE_TLS)
 | 
			
		||||
    target_link_libraries(${TEST_TARGET_NAME} "-framework foundation" "-framework security")
 | 
			
		||||
  endif()
 | 
			
		||||
 | 
			
		||||
  if (JSONCPP_FOUND)
 | 
			
		||||
    target_include_directories(${TEST_TARGET_NAME} PRIVATE ${JSONCPP_INCLUDE_DIRS})
 | 
			
		||||
    target_link_libraries(${TEST_TARGET_NAME} ${JSONCPP_LIBRARIES})
 | 
			
		||||
  endif()
 | 
			
		||||
 | 
			
		||||
  # library with the most dependencies come first
 | 
			
		||||
  target_link_libraries(${TEST_TARGET_NAME} ixbots)
 | 
			
		||||
  target_link_libraries(${TEST_TARGET_NAME} ixsnake)
 | 
			
		||||
  target_link_libraries(${TEST_TARGET_NAME} ixcobra)
 | 
			
		||||
  target_link_libraries(${TEST_TARGET_NAME} ixsentry)
 | 
			
		||||
  target_link_libraries(${TEST_TARGET_NAME} ixredis)
 | 
			
		||||
  target_link_libraries(${TEST_TARGET_NAME} ixwebsocket_test)
 | 
			
		||||
  target_link_libraries(${TEST_TARGET_NAME} ixwebsocket)
 | 
			
		||||
  target_link_libraries(${TEST_TARGET_NAME} ixcrypto)
 | 
			
		||||
  target_link_libraries(${TEST_TARGET_NAME} ixcore)
 | 
			
		||||
 | 
			
		||||
  target_link_libraries(${TEST_TARGET_NAME} spdlog)
 | 
			
		||||
  if (USE_PYTHON)
 | 
			
		||||
    target_link_libraries(${TEST_TARGET_NAME} ${Python_LIBRARIES})
 | 
			
		||||
  endif()
 | 
			
		||||
 | 
			
		||||
  add_test(NAME ${TEST_TARGET_NAME}
 | 
			
		||||
           COMMAND ${TEST_TARGET_NAME}
 | 
			
		||||
           WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
 | 
			
		||||
 | 
			
		||||
endforeach()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user