From 0463901db7c58377b51b0d5a10788bbce0875c8d Mon Sep 17 00:00:00 2001 From: SChernykh Date: Sun, 3 Sep 2023 16:23:11 +0200 Subject: [PATCH] Run thread sanitizer test with static libs --- .github/workflows/test-sync.yml | 27 +++++++++++++++++++++++++-- tests/src/tsan_sup.txt | 1 - 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test-sync.yml b/.github/workflows/test-sync.yml index 6180827..c43926b 100644 --- a/.github/workflows/test-sync.yml +++ b/.github/workflows/test-sync.yml @@ -23,18 +23,41 @@ jobs: run: | sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test sudo apt update - sudo apt install -y git build-essential cmake libuv1-dev libzmq3-dev libsodium-dev libpgm-dev libnorm-dev libgss-dev libcurl4-openssl-dev libidn2-0-dev gcc-12 g++-12 + sudo apt install -y git build-essential cmake gcc-12 g++-12 - name: Checkout repository uses: actions/checkout@v3 with: submodules: true + - name: Build libcurl + run: | + cd external/src/curl + cmake . -DCMAKE_C_COMPILER=gcc-12 -DCMAKE_C_FLAGS='-fsanitize=thread -Os -fno-omit-frame-pointer -g' -DBUILD_CURL_EXE=OFF -DBUILD_SHARED_LIBS=OFF -DCURL_ZLIB=OFF -DCURL_DISABLE_ALTSVC=ON -DCURL_DISABLE_COOKIES=ON -DCURL_DISABLE_DOH=ON -DCURL_DISABLE_GETOPTIONS=ON -DCURL_DISABLE_HSTS=ON -DCURL_DISABLE_LIBCURL_OPTION=ON -DCURL_DISABLE_MIME=ON -DCURL_DISABLE_NETRC=ON -DCURL_DISABLE_NTLM=ON -DCURL_DISABLE_PARSEDATE=ON -DCURL_DISABLE_PROGRESS_METER=ON -DCURL_DISABLE_SHUFFLE_DNS=ON -DCURL_DISABLE_SOCKETPAIR=ON -DCURL_DISABLE_VERBOSE_STRINGS=ON -DHTTP_ONLY=ON -DCURL_ENABLE_SSL=OFF -DUSE_LIBIDN2=OFF -DCURL_USE_LIBPSL=OFF -DCURL_USE_LIBSSH2=OFF -DENABLE_UNIX_SOCKETS=OFF + make -j$(nproc) + cd lib && mkdir .libs && cp libcurl.a .libs + + - name: Build libuv + run: | + cd external/src/libuv + mkdir build + cd build + cmake .. -DCMAKE_C_COMPILER=gcc-12 -DCMAKE_C_FLAGS='-fsanitize=thread -Os -fno-omit-frame-pointer -g' -DBUILD_TESTING=OFF -DLIBUV_BUILD_SHARED=OFF + make -j$(nproc) + + - name: Build libzmq + run: | + cd external/src/libzmq + mkdir build + cd build + cmake .. -DCMAKE_C_COMPILER=gcc-12 -DCMAKE_CXX_COMPILER=g++-12 -DCMAKE_C_FLAGS='-fsanitize=thread -Os -fno-omit-frame-pointer -g' -DCMAKE_CXX_FLAGS='-fsanitize=thread -Os -fno-omit-frame-pointer -g' -DWITH_LIBSODIUM=OFF -DWITH_LIBBSD=OFF -DBUILD_TESTS=OFF -DWITH_DOCS=OFF -DENABLE_DRAFTS=OFF -DBUILD_SHARED=OFF + make -j$(nproc) + - name: Build p2pool run: | mkdir build cd build - cmake .. -DDEV_TEST_SYNC=ON -DDEV_WITH_TSAN=ON -DCMAKE_C_COMPILER=gcc-12 -DCMAKE_CXX_COMPILER=g++-12 -DCMAKE_C_FLAGS="-flto=2" -DCMAKE_CXX_FLAGS="-flto=2" + cmake .. -DDEV_TEST_SYNC=ON -DDEV_WITH_TSAN=ON -DCMAKE_C_COMPILER=gcc-12 -DCMAKE_CXX_COMPILER=g++-12 -DWITH_LTO=OFF -DSTATIC_LIBS=ON make -j$(nproc) - name: Run p2pool diff --git a/tests/src/tsan_sup.txt b/tests/src/tsan_sup.txt index f9c7869..b3b7fb3 100644 --- a/tests/src/tsan_sup.txt +++ b/tests/src/tsan_sup.txt @@ -1,4 +1,3 @@ race:p2pool::log::Worker::run() race:p2pool::log::Worker::write -called_from_lib:libzmq.so race_top:do_loglevel