Skip to content

Only check for overlaps in pairs that we haven't already checked #6

Only check for overlaps in pairs that we haven't already checked

Only check for overlaps in pairs that we haven't already checked #6

Workflow file for this run

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]"