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
 | 
					    runs-on: ubuntu-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
    - uses: actions/checkout@v1
 | 
					    - uses: actions/checkout@v1
 | 
				
			||||||
    - name: make test_make
 | 
					    - uses: seanmiddleditch/gha-setup-ninja@master
 | 
				
			||||||
      run: make test_make
 | 
					    - 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
 | 
					    runs-on: macOS-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
    - uses: actions/checkout@v1
 | 
					    - uses: actions/checkout@v1
 | 
				
			||||||
 | 
					    - uses: seanmiddleditch/gha-setup-ninja@master
 | 
				
			||||||
    - name: install mbedtls
 | 
					    - name: install mbedtls
 | 
				
			||||||
      run: brew install mbedtls
 | 
					      run: brew install mbedtls
 | 
				
			||||||
    - name: make test
 | 
					    - name: make test
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,6 +9,7 @@ jobs:
 | 
				
			|||||||
    runs-on: macOS-latest
 | 
					    runs-on: macOS-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
    - uses: actions/checkout@v1
 | 
					    - uses: actions/checkout@v1
 | 
				
			||||||
 | 
					    - uses: seanmiddleditch/gha-setup-ninja@master
 | 
				
			||||||
    - name: install openssl
 | 
					    - name: install openssl
 | 
				
			||||||
      run: brew install openssl@1.1
 | 
					      run: brew install openssl@1.1
 | 
				
			||||||
    - name: make test
 | 
					    - name: make test
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,5 +9,6 @@ jobs:
 | 
				
			|||||||
    runs-on: macOS-latest
 | 
					    runs-on: macOS-latest
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
    - uses: actions/checkout@v1
 | 
					    - uses: actions/checkout@v1
 | 
				
			||||||
    - name: make test_tsan
 | 
					    - uses: seanmiddleditch/gha-setup-ninja@master
 | 
				
			||||||
      run: make test_tsan
 | 
					    - name: make test_tsan_sectransport
 | 
				
			||||||
 | 
					      run: make test_tsan_sectransport
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -273,6 +273,7 @@ if (USE_WS OR USE_TEST)
 | 
				
			|||||||
    add_subdirectory(ws)
 | 
					    add_subdirectory(ws)
 | 
				
			||||||
  endif()
 | 
					  endif()
 | 
				
			||||||
  if (USE_TEST)
 | 
					  if (USE_TEST)
 | 
				
			||||||
 | 
					    enable_testing()
 | 
				
			||||||
    add_subdirectory(test)
 | 
					    add_subdirectory(test)
 | 
				
			||||||
  endif()
 | 
					  endif()
 | 
				
			||||||
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            |
 | 
					| OS                | TLS               | Sanitizer         | Status            |
 | 
				
			||||||
|-------------------|-------------------|-------------------|-------------------|
 | 
					|-------------------|-------------------|-------------------|-------------------|
 | 
				
			||||||
| Linux             | OpenSSL           | None              | [![Build2][1]][7] |
 | 
					| Linux             | OpenSSL           | None              | [![Build2][1]][0] |
 | 
				
			||||||
| macOS             | Secure Transport  | Thread Sanitizer  | [![Build2][2]][7] |
 | 
					| macOS             | Secure Transport  | Thread Sanitizer  | [![Build2][2]][0] |
 | 
				
			||||||
| macOS             | OpenSSL           | Thread Sanitizer  | [![Build2][3]][7] |
 | 
					| macOS             | OpenSSL           | Thread Sanitizer  | [![Build2][3]][0] |
 | 
				
			||||||
| macOS             | MbedTLS           | Thread Sanitizer  | [![Build2][4]][7] |
 | 
					| macOS             | MbedTLS           | Thread Sanitizer  | [![Build2][4]][0] |
 | 
				
			||||||
| Windows           | Disabled          | None              | [![Build2][5]][7] |
 | 
					| Windows           | Disabled          | None              | [![Build2][5]][0] |
 | 
				
			||||||
| UWP               | Disabled          | None              | [![Build2][6]][7] |
 | 
					| 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
 | 
					[1]: https://github.com/machinezone/IXWebSocket/workflows/linux/badge.svg
 | 
				
			||||||
[2]: https://github.com/machinezone/IXWebSocket/workflows/mac_tsan_sectransport/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
 | 
					[3]: https://github.com/machinezone/IXWebSocket/workflows/mac_tsan_openssl/badge.svg
 | 
				
			||||||
[4]: https://github.com/machinezone/IXWebSocket/workflows/mac_tsan_mbedtls/badge.svg
 | 
					[4]: https://github.com/machinezone/IXWebSocket/workflows/mac_tsan_mbedtls/badge.svg
 | 
				
			||||||
[5]: https://github.com/machinezone/IXWebSocket/workflows/windows/badge.svg
 | 
					[5]: https://github.com/machinezone/IXWebSocket/workflows/windows/badge.svg
 | 
				
			||||||
[6]: https://github.com/machinezone/IXWebSocket/workflows/uwp/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:
 | 
					test_server:
 | 
				
			||||||
	(cd test && npm i ws && node broadcast-server.js)
 | 
						(cd test && npm i ws && node broadcast-server.js)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# env TEST=Websocket_server make test
 | 
					test:
 | 
				
			||||||
# env TEST=Websocket_chat make test
 | 
						mkdir -p build && (cd build ; cmake -GNinja -DCMAKE_BUILD_TYPE=Debug -DUSE_PYTHON=1 -DUSE_TLS=1 -DUSE_TEST=1 ..)
 | 
				
			||||||
# env TEST=heartbeat make test
 | 
						(cd build ; ninja)
 | 
				
			||||||
build_test:
 | 
						(cd build ; ninja test)
 | 
				
			||||||
	mkdir -p build && (cd build ; cmake -GNinja -DCMAKE_BUILD_TYPE=Debug -DUSE_TLS=1 -DUSE_TEST=1 .. ; ninja install)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
test: build_test
 | 
					test_asan:
 | 
				
			||||||
	(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_TEST=1 .. -DCMAKE_C_FLAGS="-fsanitize=address -fno-omit-frame-pointer" -DCMAKE_CXX_FLAGS="-fsanitize=address -fno-omit-frame-pointer")
 | 
				
			||||||
 | 
						(cd build ; ninja)
 | 
				
			||||||
test_make:
 | 
						(cd build ; ninja test)
 | 
				
			||||||
	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_tsan_mbedtls:
 | 
					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)
 | 
						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/test ; ln -sf Debug/ixwebsocket_unittest)
 | 
						(cd build ; ninja)
 | 
				
			||||||
	(cd test ; python2.7 run.py -r)
 | 
						(cd build ; ninja test)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
build_test_openssl:
 | 
					test_tsan_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)
 | 
						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
 | 
					test_tsan_sectransport:
 | 
				
			||||||
	(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_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)
 | 
				
			||||||
build_test_mbedtls:
 | 
						(cd build ; ninja test)
 | 
				
			||||||
	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)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
ws_test: ws
 | 
					ws_test: ws
 | 
				
			||||||
	(cd ws ; env DEBUG=1 PATH=../ws/build:$$PATH bash test_ws.sh)
 | 
						(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)
 | 
					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
 | 
					# Shared sources
 | 
				
			||||||
set (SOURCES
 | 
					set (TEST_TARGET_NAMES
 | 
				
			||||||
  ${JSONCPP_SOURCES}
 | 
					  IXSocketTest
 | 
				
			||||||
 | 
					  IXSocketConnectTest
 | 
				
			||||||
  test_runner.cpp
 | 
					 | 
				
			||||||
  IXTest.cpp
 | 
					 | 
				
			||||||
  ../third_party/msgpack11/msgpack11.cpp
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  IXSocketTest.cpp
 | 
					 | 
				
			||||||
  IXSocketConnectTest.cpp
 | 
					 | 
				
			||||||
  # IXWebSocketLeakTest.cpp # commented until we have a fix for #224
 | 
					  # IXWebSocketLeakTest.cpp # commented until we have a fix for #224
 | 
				
			||||||
  IXWebSocketServerTest.cpp
 | 
					  IXWebSocketServerTest
 | 
				
			||||||
  IXWebSocketTestConnectionDisconnection.cpp
 | 
					  IXWebSocketTestConnectionDisconnection
 | 
				
			||||||
  IXUrlParserTest.cpp
 | 
					  IXUrlParserTest
 | 
				
			||||||
  IXWebSocketServerTest.cpp
 | 
					  IXHttpClientTest
 | 
				
			||||||
  IXHttpClientTest.cpp
 | 
					  IXHttpServerTest
 | 
				
			||||||
  IXHttpServerTest.cpp
 | 
					  IXUnityBuildsTest
 | 
				
			||||||
  IXUnityBuildsTest.cpp
 | 
					  IXHttpTest
 | 
				
			||||||
  IXHttpTest.cpp
 | 
					  IXDNSLookupTest
 | 
				
			||||||
  IXDNSLookupTest.cpp
 | 
					  IXWebSocketSubProtocolTest
 | 
				
			||||||
  IXWebSocketSubProtocolTest.cpp
 | 
					  IXSentryClientTest
 | 
				
			||||||
  IXSentryClientTest.cpp
 | 
					  IXWebSocketChatTest
 | 
				
			||||||
  IXWebSocketChatTest.cpp
 | 
					  IXWebSocketBroadcastTest
 | 
				
			||||||
  IXWebSocketBroadcastTest.cpp
 | 
					  IXWebSocketPerMessageDeflateCompressorTest
 | 
				
			||||||
  IXWebSocketPerMessageDeflateCompressorTest.cpp
 | 
					  IXStreamSqlTest
 | 
				
			||||||
  IXStreamSqlTest.cpp
 | 
					 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Some unittest don't work on windows yet
 | 
					# Some unittest don't work on windows yet
 | 
				
			||||||
# Windows without TLS does not have hmac yet
 | 
					# Windows without TLS does not have hmac yet
 | 
				
			||||||
if (UNIX)
 | 
					if (UNIX)
 | 
				
			||||||
  list(APPEND SOURCES
 | 
					  list(APPEND TEST_TARGET_NAMES
 | 
				
			||||||
    IXWebSocketCloseTest.cpp
 | 
					    IXWebSocketCloseTest
 | 
				
			||||||
    IXCobraChatTest.cpp
 | 
					    IXCobraChatTest
 | 
				
			||||||
    IXCobraMetricsPublisherTest.cpp
 | 
					    IXCobraMetricsPublisherTest
 | 
				
			||||||
    IXCobraToSentryBotTest.cpp
 | 
					    IXCobraToSentryBotTest
 | 
				
			||||||
    IXCobraToStatsdBotTest.cpp
 | 
					    IXCobraToStatsdBotTest
 | 
				
			||||||
    IXCobraToStdoutBotTest.cpp
 | 
					    IXCobraToStdoutBotTest
 | 
				
			||||||
  )
 | 
					  )
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -71,19 +49,9 @@ endif()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
# Disable tests for now that are failing or not reliable
 | 
					# Disable tests for now that are failing or not reliable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
add_executable(ixwebsocket_unittest ${SOURCES})
 | 
					find_package(JsonCpp)
 | 
				
			||||||
 | 
					if (NOT JSONCPP_FOUND)
 | 
				
			||||||
if (MAC)
 | 
					  set(JSONCPP_SOURCES ../third_party/jsoncpp/jsoncpp.cpp)
 | 
				
			||||||
  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})
 | 
					 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (USE_PYTHON)
 | 
					if (USE_PYTHON)
 | 
				
			||||||
@@ -97,19 +65,67 @@ if (USE_PYTHON)
 | 
				
			|||||||
  message("Python_LIBRARIES:${Python_LIBRARIES}")
 | 
					  message("Python_LIBRARIES:${Python_LIBRARIES}")
 | 
				
			||||||
endif()
 | 
					endif()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# library with the most dependencies come first
 | 
					add_library(ixwebsocket_test)
 | 
				
			||||||
target_link_libraries(ixwebsocket_unittest ixbots)
 | 
					target_sources(ixwebsocket_test PRIVATE 
 | 
				
			||||||
target_link_libraries(ixwebsocket_unittest ixsnake)
 | 
					    ${JSONCPP_SOURCES}
 | 
				
			||||||
target_link_libraries(ixwebsocket_unittest ixcobra)
 | 
					    test_runner.cpp
 | 
				
			||||||
target_link_libraries(ixwebsocket_unittest ixsentry)
 | 
					    IXTest.cpp
 | 
				
			||||||
target_link_libraries(ixwebsocket_unittest ixredis)
 | 
					    ../third_party/msgpack11/msgpack11.cpp
 | 
				
			||||||
target_link_libraries(ixwebsocket_unittest ixwebsocket)
 | 
					)
 | 
				
			||||||
target_link_libraries(ixwebsocket_unittest ixcrypto)
 | 
					target_compile_definitions(ixwebsocket_test PRIVATE ${TEST_PROGRAMS_DEFINITIONS})
 | 
				
			||||||
target_link_libraries(ixwebsocket_unittest ixcore)
 | 
					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)
 | 
					foreach(TEST_TARGET_NAME ${TEST_TARGET_NAMES})
 | 
				
			||||||
if (USE_PYTHON)
 | 
					  add_executable(${TEST_TARGET_NAME}
 | 
				
			||||||
  target_link_libraries(ixwebsocket_unittest ${Python_LIBRARIES})
 | 
					    ${TEST_TARGET_NAME}.cpp
 | 
				
			||||||
endif()
 | 
					  )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
install(TARGETS ixwebsocket_unittest DESTINATION bin)
 | 
					  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()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  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