Only check for overlaps in pairs that we haven't already checked #6
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Sanitisers | |
| on: pull_request | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| sanitisers: | |
| timeout-minutes: 60 | |
| runs-on: ubuntu-latest | |
| env: | |
| CXX: ccache clang++ | |
| CXXFLAGS: -fdiagnostics-color -fno-omit-frame-pointer -g -O1 | |
| strategy: | |
| matrix: | |
| type: [thread, address, undefined] | |
| include: | |
| - type: thread | |
| environment_variables: TSAN_OPTIONS="suppressions=tsan-suppression.cfg" | |
| - type: undefined | |
| environment_variables: UBSAN_OPTIONS=log_path=ubsan.log | |
| fail-fast: false | |
| name: ${{ matrix.type }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup ccache . . . | |
| uses: Chocobo1/setup-ccache-action@v1 | |
| with: | |
| update_packager_index: false | |
| install_ccache: true | |
| - name: Configure with -fsanitize=${{ matrix.type }} . . . | |
| run: | | |
| mkdir -p m4 && ./autogen.sh | |
| ./configure CXX="$CXX" CXXFLAGS="-fsanitize=${{ matrix.type }} $CXXFLAGS" | |
| - name: Build libsemigroups . . . | |
| run: make -j4 | |
| - name: Build test_all . . . | |
| run: make test_all -j4 | |
| - name: Run tests . . . | |
| run: ${{ matrix.environment_variables }} ./test_all "[quick][exclude:no-sanitize-${{ matrix.type }}]" | |
| - name: Check log files (UBSAN only) | |
| if: ${{ matrix.type == 'undefined' }} | |
| run: | | |
| if [ -f ubsan.log* ]; then | |
| cat ubsan.log* | |
| $(exit 1) | |
| fi | |
| valgrind: | |
| timeout-minutes: 60 | |
| runs-on: ubuntu-latest | |
| env: | |
| CXX: ccache g++ | |
| CXXFLAGS: -fdiagnostics-color | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Setup ccache . . . | |
| uses: Chocobo1/setup-ccache-action@v1 | |
| with: | |
| update_packager_index: false | |
| install_ccache: true | |
| - name: Install dependencies . . . | |
| run: | | |
| sudo apt-get --yes update | |
| sudo apt-get install -y expect libc6-dbg libtool-bin valgrind | |
| - name: Configure . . . | |
| run: | | |
| mkdir -p m4 && ./autogen.sh | |
| ./configure CXX="$CXX" CXXFLAGS="$CXXFLAGS" --enable-debug --disable-hpcombi | |
| - name: Build libsemigroups . . . | |
| run: make -j4 | |
| - name: Build test_all . . . | |
| run: make test_all -j4 | |
| - name: Run tests with valgrind . . . | |
| run: | | |
| valgrind --version | |
| unbuffer libtool --mode=execute valgrind --leak-check=full --error-exitcode=1 ./test_all "[quick][exclude:no-valgrind]" |