diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ef97e88..38c9028 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -33,6 +33,43 @@ jobs: - name: Test run: | ctest --output-on-failure --test-dir build/ + + build-linux-gcc-sanitizers: + runs-on: Ubuntu-22.04 + strategy: + matrix: + compiler: ['g++-12'] + standard: ['11', '14', '17', '20'] + precompile: ['ON', 'OFF'] + betafeature: ['ON', 'OFF'] + asan: ['ON', 'OFF'] + ubsan: ['ON', 'OFF'] + exclude: + - asan: 'ON' + ubsan: 'ON' + steps: + - name: Get number of CPU cores + uses: SimenB/github-actions-cpu-cores@v2 + id: cpu-cores + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: true + - name: Install + run: | + sudo apt-get update + sudo apt-get install language-pack-fr # test serializer w/ locale + sudo apt-get install ${{ matrix.compiler }} + - name: Configure + run: | + cmake -B build/ -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} -DCMAKE_CXX_STANDARD=${{ matrix.standard }} -DTOML11_BUILD_TESTS=ON -DTOML11_PRECOMPILE=${{ matrix.precompile }} -DTOML11_ENABLE_ACCESS_CHECK=${{ matrix.betafeature }} -DTOML11_TEST_WITH_ASAN=${{ matrix.asan }} -DTOML11_TEST_WITH_UBSAN=${{ matrix.ubsan }} + - name: Build + run: | + cmake --build build/ -j${{ steps.cpu-cores.outputs.count }} + - name: Test + run: | + ctest --output-on-failure --test-dir build/ + build-linux-clang: runs-on: Ubuntu-22.04 strategy: diff --git a/.github/workflows/toml-test.yml b/.github/workflows/toml-test.yml index 449cff8..d8b343a 100644 --- a/.github/workflows/toml-test.yml +++ b/.github/workflows/toml-test.yml @@ -9,6 +9,11 @@ jobs: matrix: compiler: ['g++-12'] standard: ['11', '14', '17', '20'] + asan: ['ON', 'OFF'] + ubsan: ['ON', 'OFF'] + exclude: + - asan: 'ON' + ubsan: 'ON' steps: - name: Checkout uses: actions/checkout@v4 @@ -22,7 +27,7 @@ jobs: uses: actions/setup-go@v5 - name: Configure run: | - cmake -B build/ -DBUILD_TESTING=OFF -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} -DCMAKE_CXX_STANDARD=${{ matrix.standard }} -DTOML11_BUILD_TOML_TESTS=ON + cmake -B build/ -DBUILD_TESTING=OFF -DCMAKE_CXX_COMPILER=${{ matrix.compiler }} -DCMAKE_CXX_STANDARD=${{ matrix.standard }} -DTOML11_BUILD_TOML_TESTS=ON -DTOML11_TEST_WITH_ASAN=${{ matrix.asan }} -DTOML11_TEST_WITH_UBSAN=${{ matrix.ubsan }} - name: Build run: | cmake --build build/