From 575bceb1ec4cc2aec04b9c6645c34813b4e3c23e Mon Sep 17 00:00:00 2001 From: Benjamin Sergeant Date: Wed, 18 Mar 2020 20:53:54 -0700 Subject: [PATCH] add make target for ubsan, tsan and asan, and enable running the unittest on mac with tsan --- .github/workflows/ccpp.yml | 7 +++++++ makefile | 15 +++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/.github/workflows/ccpp.yml b/.github/workflows/ccpp.yml index c2653768..edc2f938 100644 --- a/.github/workflows/ccpp.yml +++ b/.github/workflows/ccpp.yml @@ -19,6 +19,13 @@ jobs: - name: make test run: make test + tsan: + runs-on: macOS-latest + steps: + - uses: actions/checkout@v1 + - name: make test_tsan + run: make test_tsan + win: runs-on: windows-latest steps: diff --git a/makefile b/makefile index fbefee77..44c4fc77 100644 --- a/makefile +++ b/makefile @@ -90,6 +90,21 @@ test: mkdir -p build && (cd build ; cmake -DCMAKE_BUILD_TYPE=Debug -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_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_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: + mkdir -p build && (cd build && cmake -GXcode -DCMAKE_BUILD_TYPE=Debug -DUSE_TLS=1 -DUSE_TEST=1 .. && xcodebuild -project ixwebsocket.xcodeproj -target ixwebsocket_unittest -enableAddressSanitizer YES) + (cd build/test ; ln -sf Debug/ixwebsocket_unittest) + (cd test ; python2.7 run.py -r) + test_openssl: mkdir -p build && (cd build ; cmake -DCMAKE_BUILD_TYPE=Debug -DUSE_TLS=1 -DUSE_OPEN_SSL=1 -DUSE_TEST=1 .. ; make -j 4) (cd test ; python2.7 run.py -r)