add some unit tests #1090
This file contains 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: linux | |
on: | |
push: | |
branches: | |
- master | |
paths-ignore: | |
- '**.md' | |
- 'docs/**' | |
pull_request: | |
branches: | |
- master | |
paths-ignore: | |
- '**.md' | |
- 'docs/**' | |
jobs: | |
build: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
cxx: [ g++-8, g++-10 ] | |
build_type: [ Debug, Release ] | |
std: [ 17 ] | |
os: [ ubuntu-20.04 ] | |
with_tests: [ ON ] | |
include: | |
# Build and with g++8 | |
- cxx: g++-8 | |
std: 17 | |
os: ubuntu-20.04 | |
with_tests: ON | |
install: sudo apt -o Acquire::Retries=5 install g++-8 | |
# Build and test as shared library | |
- cxx: g++-10 | |
build_type: Release | |
std: 17 | |
os: ubuntu-20.04 | |
with_tests: ON | |
cmake_options: -DBUILD_SHARED_LIBS=ON -DCMAKE_CXX_VISIBILITY_PRESET=hidden -DCMAKE_VISIBILITY_INLINES_HIDDEN=ON | |
# Builds with no exceptions | |
- cxx: g++-10 | |
build_type: Release | |
std: 17 | |
os: ubuntu-20.04 | |
with_tests: OFF | |
cmake_options: -DQUILL_NO_EXCEPTIONS=ON | |
# Build and test with valgrind, sanitizers | |
- cxx: g++-10 | |
build_type: Release | |
std: 20 | |
os: ubuntu-20.04 | |
with_tests: ON | |
cmake_options: -DQUILL_USE_VALGRIND=ON | |
ctest_options: -T memcheck | |
install: sudo apt -o Acquire::Retries=5 install valgrind | |
# Build and test sanitizers | |
- cxx: clang++-12 | |
build_type: Release | |
std: 20 | |
os: ubuntu-20.04 | |
with_tests: ON | |
cmake_options: -DQUILL_SANITIZE_ADDRESS=ON | |
# Build and test sanitizers | |
- cxx: clang++-12 | |
build_type: Release | |
std: 20 | |
os: ubuntu-20.04 | |
with_tests: ON | |
cmake_options: -DQUILL_SANITIZE_THREAD=ON | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Create Build Environment | |
run: | | |
sudo apt-get update | |
${{matrix.install}} | |
cmake -E make_directory ${{runner.workspace}}/build | |
- name: Configure | |
working-directory: ${{runner.workspace}}/build | |
env: | |
CXX: ${{matrix.cxx}} | |
CXXFLAGS: ${{matrix.cxxflags}} | |
run: | | |
cmake -DCMAKE_BUILD_TYPE=${{matrix.build_type}} ${{matrix.cmake_options}} \ | |
-DCMAKE_CXX_STANDARD=${{matrix.std}} -DQUILL_BUILD_TESTS=${{matrix.with_tests}} \ | |
-DQUILL_BUILD_EXAMPLES=ON -DQUILL_VERBOSE_MAKEFILE=ON $GITHUB_WORKSPACE | |
- name: Build | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
threads=`nproc` | |
cmake --build . --config ${{matrix.build_type}} --parallel $threads | |
- name: Test | |
working-directory: ${{runner.workspace}}/build | |
run: | | |
threads=`nproc` | |
ctest --build-config ${{matrix.build_type}} ${{matrix.ctest_options}} --parallel $threads --output-on-failure | |
env: | |
CTEST_OUTPUT_ON_FAILURE: True |