Skip to content

Simplify BUILD_TESTING in CMakeLists.txt (#646) #3070

Simplify BUILD_TESTING in CMakeLists.txt (#646)

Simplify BUILD_TESTING in CMakeLists.txt (#646) #3070

Workflow file for this run

name: Sanitizers
on: [pull_request, push]
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
jobs:
build:
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
include:
- name: asan
cmake-flags: -DCMAKE_BUILD_TYPE=Asan -DBUILD_PYTHON=OFF
ctest-env:
- name: tsan
cmake-flags: -DCMAKE_BUILD_TYPE=Tsan -DBUILD_PYTHON=OFF
ctest-env: TSAN_OPTIONS=second_deadlock_stack=1
- name: ubsan
cmake-flags: -DCMAKE_BUILD_TYPE=Ubsan -DBUILD_PYTHON=OFF
ctest-env:
name: "${{ matrix.name }}"
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Install LLVM 18
run: |
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 18 all
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-18 200
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-18 200
echo "CC=clang" >> $GITHUB_ENV
echo "CXX=clang++" >> $GITHUB_ENV
echo "CXXFLAGS=-stdlib=libc++" >> $GITHUB_ENV
- run: cmake -B build -S . ${{ matrix.cmake-flags }} -DBUILD_EXAMPLES=ON
- run: cmake --build build --target all --config RelWithDebInfo --parallel $(nproc)
- run: ${{ matrix.ctest-env }} ctest --test-dir build -C RelWithDebInfo --output-on-failure