Add ASAN integration testing
Add jobs for testing with -fsanitize=address and -fsanitize=thread.
This commit is contained in:
parent
2bfacdac91
commit
90f7810584
53
.github/workflows/continuous_integration.yml
vendored
53
.github/workflows/continuous_integration.yml
vendored
@ -64,6 +64,59 @@ jobs:
|
|||||||
ctest --output-on-failure &&
|
ctest --output-on-failure &&
|
||||||
cd ../Test && ./runtests
|
cd ../Test && ./runtests
|
||||||
|
|
||||||
|
linux-asan:
|
||||||
|
runs-on: ubuntu-22.04
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
compiler: [{cc: gcc, cxx: g++}]
|
||||||
|
cmake_build_type: [Debug]
|
||||||
|
flags: ['-fsanitize=address', '-fsanitize=thread']
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@3df4ab11eba7bda6032a0b82a6bb43b11571feac # v4.0.0
|
||||||
|
- uses: lukka/get-cmake@4dcd3eb73017c61159eb130746fbca35d78a3d5f # v3.27.4
|
||||||
|
- uses: actions/setup-python@61a6322f88396a6271a6ee3565807d608ecaddd1 # v4.7.0
|
||||||
|
with:
|
||||||
|
python-version: '3.7'
|
||||||
|
- name: Setup ccache
|
||||||
|
uses: hendrikmuhs/ccache-action@6d1841ec156c39a52b1b23a810da917ab98da1f4 # v1.2.10
|
||||||
|
with:
|
||||||
|
key: ubuntu-22-${{ matrix.cmake_build_type }}-${{ matrix.compiler.cc }}-${{matrix.compiler.cxx}}-${{matrix.flags}}
|
||||||
|
- name: Install GoogleTest
|
||||||
|
run: |
|
||||||
|
# check out pre-breakage version of googletest; can be deleted when
|
||||||
|
# issue 3128 is fixed
|
||||||
|
# git clone --depth=1 https://github.com/google/googletest.git External/googletest
|
||||||
|
mkdir -p External/googletest
|
||||||
|
cd External/googletest
|
||||||
|
git init
|
||||||
|
git remote add origin https://github.com/google/googletest.git
|
||||||
|
git fetch --depth 1 origin 0c400f67fcf305869c5fb113dd296eca266c9725
|
||||||
|
git reset --hard FETCH_HEAD
|
||||||
|
cd ../..
|
||||||
|
- name: Update Glslang Sources
|
||||||
|
run: ./update_glslang_sources.py
|
||||||
|
- name: Configure
|
||||||
|
run: cmake -S . -B build -D CMAKE_BUILD_TYPE=${{ matrix.cmake_build_type }}
|
||||||
|
env:
|
||||||
|
CC: ${{matrix.compiler.cc}}
|
||||||
|
CXX: ${{matrix.compiler.cxx}}
|
||||||
|
CMAKE_GENERATOR: Ninja
|
||||||
|
CMAKE_C_COMPILER_LAUNCHER: ccache
|
||||||
|
CMAKE_CXX_COMPILER_LAUNCHER: ccache
|
||||||
|
CFLAGS: ${{matrix.flags}}
|
||||||
|
CXXFLAGS: ${{matrix.flags}}
|
||||||
|
LDFLAGS: ${{matrix.flags}}
|
||||||
|
- name: Build
|
||||||
|
run: cmake --build build
|
||||||
|
- name: Install
|
||||||
|
run: cmake --install build --prefix build/install
|
||||||
|
- name: Test
|
||||||
|
run: |
|
||||||
|
cd build
|
||||||
|
ctest --output-on-failure &&
|
||||||
|
cd ../Test && ./runtests
|
||||||
|
|
||||||
# Ensure we can compile/run on an older distro
|
# Ensure we can compile/run on an older distro
|
||||||
linux_min:
|
linux_min:
|
||||||
name: Linux Backcompat
|
name: Linux Backcompat
|
||||||
|
Loading…
x
Reference in New Issue
Block a user