Skip to content

Added leak sanitizer and refactored test for feature-checker #266

Added leak sanitizer and refactored test for feature-checker

Added leak sanitizer and refactored test for feature-checker #266

Workflow file for this run

name: Build and Test
on:
push:
branches: [ main ]
paths:
- '**.h'
- '**.c'
- '**.hpp'
- '**.cpp'
- '**.y'
- '**.l'
- '**.sh'
- '**.cmake'
- '**CMakeLists.txt'
pull_request:
branches: [ main ]
paths:
- '**.h'
- '**.c'
- '**.hpp'
- '**.cpp'
- '**.y'
- '**.l'
- '**.sh'
- '**.cmake'
- '**.xml'
- '**CMakeLists.txt'
jobs:
format:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Get clang-format-11
run: |
export DEBIAN_FRONTEND=noninteractive
sudo apt-get -qy update
sudo apt-get -qy install clang-format-11
- name: Format
run: find src include test -iregex '.*\.\(c\|h\|cpp\|hpp\|cc\|hh\|cxx\|hxx\)$' -exec clang-format-11 -n -Werror {} \;
build-linux64:
needs: [ format ]
strategy:
fail-fast: false
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set default environment variables
run: |
echo "DEBIAN_FRONTEND=noninteractive" >> "$GITHUB_ENV"
echo "BUILD_DIR=build-linux64-gcc10" >> "$GITHUB_ENV"
echo "CROSSCOMPILING_EMULATOR=wine" >> "$GITHUB_ENV"
echo "CTEST_OUTPUT_ON_FAILURE=1" >> "$GITHUB_ENV"
- name: Get Ubuntu dependencies
run: |
sudo apt-get -qy update
sudo apt-get -qy install bison curl wget unzip xz-utils cmake ninja-build flex libc6-dev g++-10
- name: Get library dependencies
run: ./getlibs/getlibs.sh linux64-gcc10
- name: Configure CMake build system
run: cmake -DCMAKE_TOOLCHAIN_FILE=$PWD/cmake/toolchain/linux64-gcc10.cmake -DCMAKE_PREFIX_PATH=$PWD/local/linux64-gcc10 -DCMAKE_BUILD_TYPE=Debug -DUBSAN=ON -DASAN=ON -B $BUILD_DIR -S . -G Ninja
- name: Build
run: cmake --build $BUILD_DIR
- name: Test
run: (cd $BUILD_DIR ; ctest)
build-win64:
needs: [ format ]
strategy:
fail-fast: false
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set default environment variables
run: |
echo "DEBIAN_FRONTEND=noninteractive" >> "$GITHUB_ENV"
echo "BUILD_DIR=build-win64" >> "$GITHUB_ENV"
echo "CROSSCOMPILING_EMULATOR=wine" >> "$GITHUB_ENV"
echo "CTEST_OUTPUT_ON_FAILURE=1" >> "$GITHUB_ENV"
- name: Get Ubuntu dependencies
run: |
sudo apt-get -qy update
sudo apt-get -qy install bison curl wget unzip xz-utils cmake ninja-build flex g++-mingw-w64-x86-64-posix wine wine64
sudo apt-get -qy install wine-binfmt
sudo update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix
sudo update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix
- name: Get library dependencies
run: ./getlibs/getlibs.sh win64
- name: Configure CMake build system
run: cmake -DCMAKE_TOOLCHAIN_FILE=$PWD/cmake/toolchain/win64.cmake -DCMAKE_PREFIX_PATH=$PWD/local/win64 -DCMAKE_BUILD_TYPE=Debug -B $BUILD_DIR -S . -G Ninja
- name: Build
run: cmake --build $BUILD_DIR
- name: Test
run: (cd $BUILD_DIR ; ctest)
build-macos:
needs: [ format ]
strategy:
fail-fast: false
runs-on: macos-11
steps:
- uses: actions/checkout@v3
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '13.2.1'
- name: Get Home Brew dependencies
run: brew install -q cmake ninja bison libxml2 doctest
- name: Set environment variables
run: |
echo "BUILD_DIR=build-darwin" >> "$GITHUB_ENV"
echo "CTEST_OUTPUT_ON_FAILURE=1" >> "$GITHUB_ENV"
- name: Configure CMake build system
run: |
export PATH="/usr/local/bin:$PATH"
export PATH="/usr/local/opt/bison/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/bison/lib $LDFLAGS"
export PKG_CONFIG_PATH="/usr/local/opt/libxml2/lib/pkgconfig"
export PATH="/usr/local/opt/libxml2/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/libxml2/lib $LDFLAGS"
export CPPFLAGS="-I/usr/local/opt/libxml2/include $CPPFLAGS"
cmake -DCMAKE_BUILD_TYPE=Debug -DUBSAN=ON -DASAN=ON -B $BUILD_DIR -S . -G Ninja
- name: Build
run: cmake --build $BUILD_DIR
- name: Test
run: (cd $BUILD_DIR ; ctest)
# build-macos-brew-gcc10:
# needs: [ format ]
# strategy:
# fail-fast: false
# runs-on: macos-11
# steps:
# - uses: actions/checkout@v3
# - uses: maxim-lobanov/setup-xcode@v1
# with:
# xcode-version: '13.2.1'
# - name: Get brew dependencies
# run: brew -q install bash coreutils gnu-sed gawk wget gcc@10 cmake automake autoconf libtool flex bison ninja
# - name: Set default environment variables
# run: |
# echo "BUILD_DIR=build-darwin-brew-gcc10" >> "$GITHUB_ENV"
# echo "CTEST_OUTPUT_ON_FAILURE=1" >> "$GITHUB_ENV"
# - name: Get library dependencies
# run: ./getlibs/getlibs.sh darwin-brew-gcc10
# - name: Configure CMake build system
# run: cmake -DCMAKE_TOOLCHAIN_FILE=$PWD/cmake/toolchain/darwin-brew-gcc10.cmake -DCMAKE_PREFIX_PATH=$PWD/local/darwin-brew-gcc10 -DCMAKE_BUILD_TYPE=Debug -DUBSAN=ON -DASAN=ON -B $BUILD_DIR -S . -G Ninja
# - name: Build
# run: cmake --build $BUILD_DIR
# - name: Test
# run: (cd $BUILD_DIR ; ctest)
# build-nix:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v3
# - uses: cachix/install-nix-action@v15
# with:
# nix_path: nixpkgs=channel:nixos-unstable
# - name: Build and test
# run: nix build
# build-nix-mac:
# runs-on: macos-latest
# steps:
# - uses: actions/checkout@v3
# - uses: cachix/install-nix-action@v15
# with:
# nix_path: nixpkgs=channel:nixos-unstable
# - name: Build and test
# run: nix build
# build-nix-cross:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v3
# - uses: cachix/install-nix-action@v15
# with:
# nix_path: nixpkgs=channel:nixos-unstable
# - name: Build and test
# run: nix build .\#utapWindows.x86_64-linux
# build-linux64:
# needs: [ format ]
# strategy:
# fail-fast: false
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v3
# - name: Set default environment variables
# run: |
# echo "DEBIAN_FRONTEND=noninteractive" >> "$GITHUB_ENV"
# echo "BUILD_DIR=build-linux64-gcc10" >> "$GITHUB_ENV"
# echo "CROSSCOMPILING_EMULATOR=wine" >> "$GITHUB_ENV"
# echo "CTEST_OUTPUT_ON_FAILURE=1" >> "$GITHUB_ENV"
# - name: Get Ubuntu dependencies
# run: |
# sudo apt-get -qy update
# sudo apt-get -qy install bison curl wget unzip xz-utils cmake ninja-build flex libc6-dev g++-10
# - name: Get library dependencies
# run: ./getlibs/getlibs.sh linux64-gcc10
# - name: Configure CMake build system
# run: cmake -DCMAKE_TOOLCHAIN_FILE=$PWD/cmake/toolchain/linux64-gcc10.cmake -DCMAKE_PREFIX_PATH=$PWD/local/linux64-gcc10 -DCMAKE_BUILD_TYPE=Debug -DUBSAN=ON -DASAN=ON -B $BUILD_DIR -S . -G Ninja
# - name: Build
# run: cmake --build $BUILD_DIR
# - name: Test
# run: (cd $BUILD_DIR ; ctest)