tests: add basic pspax test #87
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
# GitHub actions workflow. | |
# https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions | |
name: Build+Test CI | |
on: [pull_request, push] | |
jobs: | |
make: | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
cc: [gcc, clang] | |
bb: [meson, muon] | |
sanitizer: [none, address, undefined] | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
env: | |
CC: ${{ matrix.cc }} | |
BB: ${{ matrix.bb }} | |
SANITIZER: ${{ matrix.sanitizer }} | |
steps: | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y python3-pyelftools python3-pip \ | |
libcap-dev libseccomp-dev ninja-build \ | |
pkg-config | |
case "$BB" in | |
meson) | |
sudo pip3 install meson | |
;; | |
muon) | |
wget https://muon.build/releases/edge/muon-edge-amd64-linux-static -O muon | |
chmod +x muon | |
sudo install -Dm755 muon /usr/local/bin/muon | |
;; | |
esac | |
- uses: actions/checkout@v4 | |
- run: | | |
export PKG_CONFIG_PATH="/usr/lib/$(uname -m)-linux-gnu/pkgconfig/" | |
case "$BB" in | |
muon) | |
alias ninja="muon samu" | |
;; | |
esac | |
"$BB" setup -Duse_libcap=enabled \ | |
-Duse_seccomp=true \ | |
-Dbuild_manpages=disabled \ | |
-Dtests=true \ | |
-Duse_fuzzing=true \ | |
-Db_sanitize="${SANITIZER}" \ | |
build | |
ninja -C build | |
( cd build && "$BB" test -v ; ) | |
build-macos: | |
strategy: | |
matrix: | |
os: [macos-latest] | |
cc: [clang] | |
runs-on: ${{ matrix.os }} | |
env: | |
CC: ${{ matrix.cc }} | |
steps: | |
- name: Install dependencies | |
run: brew install meson ninja | |
- uses: actions/checkout@v4 | |
- run: | | |
meson -Duse_libcap=disabled \ | |
-Duse_seccomp=false \ | |
-Dbuild_manpages=disabled \ | |
-Dtests=true \ | |
-Duse_fuzzing=false \ | |
build | |
ninja -C build | |
# The unittests generally assume a Linux ELF host, so don't bother making | |
# sure they pass on macOS. Run them out of morbid curiosity I guess. | |
ninja -kC build test ||: |