Skip to content

Added ASAN CI check #184

Added ASAN CI check

Added ASAN CI check #184

Workflow file for this run

---
name: Build on various Operating Systems
on:
push:
branches: [devel, master]
pull_request:
branches: [devel, master]
env:
ARTIFACT: lsp-dsp-lib
VALGRIND_ARGS: --error-exitcode=255 --leak-check=full --track-origins=yes --keep-debuginfo=yes --suppressions=.github/workflows/valgrind.supp
jobs:
arch_linux:
runs-on: ubuntu-latest
container:
image: archlinux:latest
steps:
- name: Add debug repositories
run: |
printf "[core-debug]\nInclude = /etc/pacman.d/mirrorlist\n[extra-debug]\nInclude = /etc/pacman.d/mirrorlist\n[multilib-debug]\nInclude = /etc/pacman.d/mirrorlist" >> /etc/pacman.conf
printf 'Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch\n%s\n' "$(cat /etc/pacman.d/mirrorlist)" > /etc/pacman.d/mirrorlist
- name: Install dependencies
run: pacman --noconfirm -Syu base-devel glibc-debug git valgrind
- uses: actions/checkout@v3
- name: Configure project
run: make config TEST=1 STRICT=1
- name: Fetch project dependencies
run: make fetch
- name: Build project
run: make VERBOSE=1
- name: Run unit tests
run: .build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --verbose --jobs 1
- name: Run unit tests with memcheck
run: |
for test in $(.build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --list --suppress); do \
echo "***** MEMCHECK $test *****"; \
valgrind ${{env.VALGRIND_ARGS}} .build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --verbose --jobs 1 --nofork --debug $test; \
done
arch_linux_asan:
runs-on: ubuntu-latest
container:
image: archlinux:latest
steps:
- name: Add debug repositories
run: |
printf "[core-debug]\nInclude = /etc/pacman.d/mirrorlist\n[extra-debug]\nInclude = /etc/pacman.d/mirrorlist\n[multilib-debug]\nInclude = /etc/pacman.d/mirrorlist" >> /etc/pacman.conf
printf 'Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch\n%s\n' "$(cat /etc/pacman.d/mirrorlist)" > /etc/pacman.d/mirrorlist
- name: Install dependencies
run: pacman --noconfirm -Syu base-devel glibc-debug git
- uses: actions/checkout@v3
- name: Configure project
run: make config TEST=1 STRICT=1 DEBUG=1 ASAN=1
- name: Fetch project dependencies
run: make fetch
- name: Build project
run: make VERBOSE=1
- name: Run unit tests
run: .build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --verbose --jobs 1
- name: Run unit tests with memcheck
run: |
for test in $(.build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --list --suppress); do \
echo "***** MEMCHECK $test *****"; \
.build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --verbose --jobs 1 --nofork --debug $test; \
done
arch_linux_valgrind:
runs-on: ubuntu-latest
container:
image: archlinux:latest
steps:
- name: Add debug repositories
run: |
printf "[core-debug]\nInclude = /etc/pacman.d/mirrorlist\n[extra-debug]\nInclude = /etc/pacman.d/mirrorlist\n[multilib-debug]\nInclude = /etc/pacman.d/mirrorlist" >> /etc/pacman.conf
printf 'Server = https://geo.mirror.pkgbuild.com/$repo/os/$arch\n%s\n' "$(cat /etc/pacman.d/mirrorlist)" > /etc/pacman.d/mirrorlist
- name: Install dependencies
run: pacman --noconfirm -Syu base-devel glibc-debug git valgrind
- uses: actions/checkout@v3
- name: Configure project
run: make config TEST=1 STRICT=1 DEBUG=1
- name: Fetch project dependencies
run: make fetch
- name: Build project
run: make VERBOSE=1
- name: Run unit tests
run: .build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --verbose --jobs 1
- name: Run unit tests with memcheck
run: |
for test in $(.build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --list --suppress); do \
echo "***** MEMCHECK $test *****"; \
valgrind ${{env.VALGRIND_ARGS}} .build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --verbose --jobs 1 --nofork --debug $test; \
done
opensuse_leap:
runs-on: ubuntu-latest
container:
image: opensuse/leap:latest
steps:
- name: Install dependencies
run: zypper --non-interactive --no-gpg-checks in tar gzip git make valgrind gcc gcc-c++
- uses: actions/checkout@v3
- name: Configure project
run: make config TEST=1 STRICT=1
- name: Fetch project dependencies
run: make fetch
- name: Build project
run: make VERBOSE=1
- name: Run unit tests
run: .build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --verbose --jobs 1
- name: Run unit tests with memcheck
run: |
for test in $(.build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --list --suppress); do \
echo "***** MEMCHECK $test *****"; \
valgrind ${{env.VALGRIND_ARGS}} .build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --verbose --jobs 1 --nofork --debug $test; \
done
opensuse_tumbleweed_clang:
runs-on: ubuntu-latest
container:
image: opensuse/tumbleweed:latest
steps:
- name: Install dependencies
run: zypper --non-interactive --no-gpg-checks in tar gzip git make valgrind gcc gcc-c++ libstdc++-devel clang
- uses: actions/checkout@v3
- name: Configure project
run: make config TEST=1 STRICT=1 CC=clang CXX=clang++
- name: Fetch project dependencies
run: make fetch
- name: Build project
run: make VERBOSE=1
- name: Run unit tests
run: .build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --verbose --jobs 1
- name: Run unit tests with memcheck
run: |
for test in $(.build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --list --suppress); do \
echo "***** MEMCHECK $test *****"; \
valgrind ${{env.VALGRIND_ARGS}} .build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --verbose --jobs 1 --nofork --debug $test; \
done
debian_stable:
runs-on: ubuntu-latest
container:
image: debian:stable
steps:
- name: Update repositories
run: apt-get update
- name: Install dependencies
run: apt-get -y install git make pkg-config valgrind gcc g++
- uses: actions/checkout@v3
- name: Configure project
run: make config TEST=1 STRICT=1
- name: Fetch project dependencies
run: make fetch
- name: Build project
run: make VERBOSE=1
- name: Run unit tests
run: .build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --verbose --jobs 1
- name: Run unit tests with memcheck
run: |
for test in $(.build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --list --suppress); do \
echo "***** MEMCHECK $test *****"; \
valgrind ${{env.VALGRIND_ARGS}} .build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test utest --verbose --jobs 1 --nofork --debug $test; \
done
windows_mingw64:
runs-on: windows-2022
defaults:
run:
shell: msys2 {0}
steps:
- name: Setup MSYS2 and install dependencies
uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
release: false
update: false
install: >-
base-devel
git
mingw-w64-x86_64-gcc
- uses: actions/checkout@v3
- name: Configure project
shell: msys2 {0}
run: make config TEST=1 STRICT=1
- name: Fetch project dependencies
shell: msys2 {0}
run: make fetch
- name: Build project
shell: msys2 {0}
run: make VERBOSE=1
- name: Run unit tests
shell: msys2 {0}
run: .build/target/${{env.ARTIFACT}}/${{env.ARTIFACT}}-test.exe utest --verbose --jobs 1