From 6516e08da48839c31577fd98f4f02d0f6730f1f9 Mon Sep 17 00:00:00 2001 From: leftibot Date: Sat, 11 Apr 2026 14:51:48 -0600 Subject: [PATCH] Address review: remove Windows sanitizers, add TSAN for Linux/macOS Remove windows-sanitizers and windows-clangcl-sanitizers CI jobs. Add linux-tsan and macos-tsan CI jobs using ENABLE_THREAD_SANITIZER. Requested by @lefticus in PR #661 review. Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/ci.yml | 48 +++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 25 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6dff798f..62ae5d24 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -103,9 +103,9 @@ jobs: - name: Test run: ctest --test-dir build --output-on-failure -C ${{ matrix.build_type }} - windows-sanitizers: - name: Windows MSVC ASAN ${{ matrix.build_type }} - runs-on: windows-latest + linux-tsan: + name: Linux GCC TSAN ${{ matrix.build_type }} + runs-on: ubuntu-latest strategy: fail-fast: false matrix: @@ -114,28 +114,26 @@ jobs: - uses: actions/checkout@v4 - name: Configure - run: cmake -B build -DENABLE_ADDRESS_SANITIZER=ON - - - name: Build - run: cmake --build build --config ${{ matrix.build_type }} -j - - - name: Test - run: ctest --test-dir build --output-on-failure -C ${{ matrix.build_type }} - - windows-clangcl-sanitizers: - name: Windows ClangCL ASAN+UBSAN ${{ matrix.build_type }} - runs-on: windows-latest - strategy: - fail-fast: false - matrix: - build_type: [Debug, Release] - steps: - - uses: actions/checkout@v4 - - - uses: ilammy/msvc-dev-cmd@v1 - - - name: Configure - run: cmake -B build -G Ninja -DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DENABLE_ADDRESS_SANITIZER=ON -DENABLE_UNDEFINED_SANITIZER=ON + run: cmake -B build -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DENABLE_THREAD_SANITIZER=ON + + - name: Build + run: cmake --build build -j + + - name: Test + run: ctest --test-dir build --output-on-failure + + macos-tsan: + name: macOS AppleClang TSAN ${{ matrix.build_type }} + runs-on: macos-latest + strategy: + fail-fast: false + matrix: + build_type: [Debug, Release] + steps: + - uses: actions/checkout@v4 + + - name: Configure + run: cmake -B build -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DENABLE_THREAD_SANITIZER=ON - name: Build run: cmake --build build -j