Skip to content
Snippets Groups Projects
sanitize.yml 1.39 KiB
name: Sanitize

on:
  pull_request:
    branches: [ master ]

jobs:
  build:
    name: "Sanitize"
    runs-on: ubuntu-20.04
    strategy:
      fail-fast: false
      matrix:
        name:      ["Sanitize"]
        sanitizer: ["address", "undefined", "thread"]
        simd:      ["ON", "OFF"]
    env:
        CC:           clang-10
        CXX:          clang++-10
        ASAN_OPTIONS: detect_leaks=1
    steps:
      - name: Set up cmake
        uses: jwlawson/actions-setup-cmake@v1.7
        with:
          cmake-version: 3.19.x
      - name: Clone w/ submodules
        uses: actions/checkout@v2
        with:
          submodules: recursive
      - name: Build arbor
        run: |
          mkdir build
          cd build
          export SAN="-fsanitize=${{ matrix.sanitizer }} -fno-omit-frame-pointer"
          cmake .. -DCMAKE_BUILD_TYPE=debug -DCMAKE_CXX_FLAGS="$SAN" -DCMAKE_C_FLAGS="$SAN" -DCMAKE_EXE_LINKER_FLAGS="$SAN" -DCMAKE_MODULE_LINKER_FLAGS="$SAN" -DCMAKE_CXX_COMPILER=$CXX -DCMAKE_C_COMPILER=$CC -DARB_VECTORIZE=${{ matrix.simd }} -DARB_WITH_MPI=OFF -DARB_USE_BUNDLED_LIBS=ON -DARB_WITH_PYTHON=ON -DPython3_EXECUTABLE=`which python`
          make -j4 VERBOSE=1 tests examples pyarb
          cd -
      - name: Run unit tests
        run: |
          build/bin/unit --gtest_filter=-*DeathTest
          build/bin/unit-modcc
      - name: Run examples
        run: scripts/run_cpp_examples.sh