Merge pull request #104 from kloczek/master #58
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: Run sanitizer checks | |
on: | |
workflow_dispatch: | |
push: | |
branches: [ master ] | |
paths: | |
- '**.h' | |
- '**.c' | |
pull_request: | |
branches: [ master ] | |
env: | |
LIBLOUIS_VERSION: 3.28.0 | |
jobs: | |
sanitizer: | |
runs-on: ubuntu-latest | |
name: Build with ${{ matrix.sanitizer }} sanitizer | |
strategy: | |
matrix: | |
sanitizer: [address, undefined] | |
include: | |
- sanitizer: "address" | |
options: "ASAN_OPTIONS=detect_leaks=0" | |
- sanitizer: "leak" | |
options: "LSAN_OPTIONS=fast_unwind_on_malloc=0" | |
- sanitizer: "undefined" | |
options: "UBSAN_OPTIONS=halt_on_error=1" | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install dependencies | |
run: sudo apt-get update -qq && sudo apt-get install -y texinfo libxml2-dev libxml2 openjdk-8-jdk | |
- name: Fetch and build liblouis | |
run: | | |
wget https://github.com/liblouis/liblouis/releases/download/v${LIBLOUIS_VERSION}/liblouis-${LIBLOUIS_VERSION}.tar.gz | |
tar -xf liblouis-*.tar.gz | |
( cd liblouis-${LIBLOUIS_VERSION} && ./configure && make && sudo make install ) | |
sudo ldconfig | |
- name: Autogen | |
run: ./autogen.sh | |
- name: Configure | |
run: CFLAGS="-fsanitize=${{ matrix.sanitizer }} -g" ./configure | |
- name: Make check | |
run: ${{ matrix.options }} make check | |
- name: Store the test suite log | |
if: ${{ always() }} # store the test suite log even if the tests failed | |
uses: actions/upload-artifact@v3 | |
with: | |
name: test-suite-${{ matrix.sanitizer }}.log | |
path: tests/test-suite.log |