Skip to content

Implement flow-specific quirks system for Pattern Loop et. al. (#816) #86

Implement flow-specific quirks system for Pattern Loop et. al. (#816)

Implement flow-specific quirks system for Pattern Loop et. al. (#816) #86

Workflow file for this run

name: Regression tests
on:
- pull_request
- push
jobs:
linux:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: CMake configure
run: |
mkdir build
cmake . -DCMAKE_BUILD_TYPE=Debug -DWITH_UNIT_TESTS=ON -B build
- name: CMake build
run: |
cmake --build build --target all -- -j 3
- name: CMake checks
run: |
cd build
ctest --output-on-failure
- name: Create and run Autotools configure script
run: |
autoconf
./configure
- name: Autotools build
run: |
make -j 3
- name: Autotools check
run: |
make check
- name: Autotools devcheck
run: |
(cd test-dev && autoconf && ./configure)
(cd test-dev && make -j 3)
linux-clang:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install dependencies
run: sudo apt update -qq && sudo apt install -y lld
- name: CMake configure
run: |
mkdir build
CC=clang cmake . -DCMAKE_BUILD_TYPE=Debug -DWITH_UNIT_TESTS=ON -B build
- name: CMake build
run: |
cmake --build build --target all -- -j 3
- name: CMake checks
run: |
cd build
ctest --output-on-failure
- name: Create and run configure script
run: |
autoconf
CC=clang ./configure
- name: Autotools build
run: |
make -j 3
- name: Autotools check
run: |
make check
- name: Autotools devcheck
run: |
(cd test-dev && autoconf && CC=clang CFLAGS="-fPIE" ./configure)
(cd test-dev && make -j 3)
- name: Fuzzers
run: (cd test-dev && make fuzzers -j3)
# Simulate Fedora RPM builds, usage of __symver__.
linux-lto:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: CMake configure
run: |
export CFLAGS="-flto"
export LDFLAGS="-flto"
cmake . -DCMAKE_BUILD_TYPE=Debug -DWITH_UNIT_TESTS=ON -B build
- name: CMake build
run: |
cmake --build build --target all -- -j 3
- name: CMake checks
run: |
cd build
ctest --output-on-failure
- name: Create and run configure script
run: |
export CFLAGS="-flto"
export LDFLAGS="-flto"
autoconf
./configure
(cd test-dev && autoconf && ./configure)
- name: Autotools build
run: |
make -j 3
- name: Autotools check
run: |
make check
- name: Autotools devcheck
run: |
(cd test-dev && make -j 3)
emscripten:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install dependencies
run: sudo apt update && sudo apt install autoconf
- name: Install emscripten
run: |
cd ..
git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
./emsdk install latest
./emsdk activate latest
- name: CMake configure
run: |
source ../emsdk/emsdk_env.sh
emcmake cmake . -DCMAKE_BUILD_TYPE=Debug -B build
- name: CMake build
run: |
source ../emsdk/emsdk_env.sh
cmake --build build --target all -- -j 3
- name: CMake check
run: |
source ../emsdk/emsdk_env.sh
cd test
emcc test.c ../src/md5.c -o test.js -O3 -Wall -I../include -I../src -L../build/ --embed-file test.itz -lxmp
node test.js
rm test.js
- name: Create and run Autotools configure script
run: |
source ../emsdk/emsdk_env.sh
autoconf
emconfigure ./configure --host=wasm32-unknown-emscripten --enable-static --disable-shared
- name: Autotools build
run: |
source ../emsdk/emsdk_env.sh
emmake make -j 3
- name: Autotools check
run: |
source ../emsdk/emsdk_env.sh
cd test
emcc test.c ../src/md5.c -o test.js -O3 -Wall -I../include -I../src -L../lib/ --embed-file test.itz -lxmp
node test.js
macos:
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install dependencies
run: brew install autoconf
- name: CMake configure for Intel
run: |
cmake . -DCMAKE_BUILD_TYPE=Debug -DWITH_UNIT_TESTS=ON -B build
- name: CMake build for Intel
run: |
cmake --build build --target all -- -j 4
- name: CMake checks
run: |
cd build
ctest --output-on-failure
- name: CMake configure for M1
run: |
cmake . -DCMAKE_OSX_ARCHITECTURES="arm64" -DCMAKE_BUILD_TYPE=Debug -DWITH_UNIT_TESTS=OFF -B build-m1
- name: CMake build for M1
run: |
cmake --build build-m1 --target all
- name: Create and run Autotools configure script
run: |
autoconf
./configure
- name: Autotools build
run: |
make -j 4
- name: Autotools check
run: |
make check
- name: Autotools devcheck
run: |
(cd test-dev && autoconf && ./configure)
(cd test-dev && make -j 4)
windows-vc:
runs-on: windows-latest
strategy:
matrix:
include: [
{targetplatform: "x86", cmakeflags: "-A Win32" },
{targetplatform: "amd64", cmakeflags: "-A x64" },
]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: CMake configure
run: |
cmake . -DCMAKE_BUILD_TYPE=Debug -DWITH_UNIT_TESTS=ON -B build ${{ matrix.cmakeflags }}
- name: CMake build
run: |
cmake --build build --config Debug --target ALL_BUILD
- name: CMake checks
run: |
cd build
ctest -C Debug --output-on-failure
- name: Preparing NMake
uses: ilammy/msvc-dev-cmd@v1
with:
arch: ${{ matrix.targetplatform }}
- name: NMake Build
run: |
nmake -f Makefile.vc
- name: NMake check
run: |
nmake -f Makefile.vc check
- name: NMake devcheck
run: |
cd test-dev
nmake -f Makefile.vc
windows-msys2:
runs-on: windows-latest
strategy:
matrix:
include: [
{installs: "MINGW32", pkg: "mingw-w64-i686-gcc mingw-w64-i686-cmake mingw-w64-i686-ninja" },
{installs: "MINGW64", pkg: "mingw-w64-x86_64-gcc mingw-w64-x86_64-cmake mingw-w64-x86_64-ninja" },
]
defaults:
run:
shell: msys2 {0}
steps:
- name: Setup msys2
uses: msys2/setup-msys2@v2
with:
msystem: ${{ matrix.installs }}
update: true
install: base-devel git autoconf ${{ matrix.pkg }}
- name: Checkout repository
uses: actions/checkout@v4
- name: Create and run Autotools configure script
run: |
autoconf
./configure
- name: Autotools build
run: |
make -j 3
- name: Autotools check
run: |
make check
- name: Autotools devcheck
run: |
(cd test-dev && autoconf && ./configure)
(cd test-dev && make -j 3)
- name: Distclean
run: (cd test-dev && make distclean) && make distclean
- name: CMake configure
run: |
cmake . -G "Ninja" -DCMAKE_BUILD_TYPE=Debug -DWITH_UNIT_TESTS=ON -B build
- name: CMake build
run: |
cmake --build build --target all -- -j 3
- name: CMake checks
run: |
cd build
ctest --output-on-failure
openwatcom:
runs-on: windows-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup OpenWatcom
uses: open-watcom/setup-watcom@v0
with:
version: "2.0"
- name: WMake Build (Win32)
run: |
wmake -f Makefile.w32
- name: WMake check (Win32)
run: |
wmake -f Makefile.w32 check
- name: WMake distclean (Win32)
run: |
wmake -f Makefile.w32 distclean
- name: WMake Build (OS/2)
run: |
wmake -f Makefile.os2
- name: WMake check (OS/2)
run: |
wmake -f Makefile.os2 check-build
- name: WMake distclean (OS/2)
run: |
wmake -f Makefile.os2 distclean
- name: WMake Build (MS-DOS)
run: |
wmake -f Makefile.dos
- name: WMake check (MS-DOS)
run: |
wmake -f Makefile.dos check-build
- name: WMake distclean (MS-DOS)
run: |
wmake -f Makefile.dos distclean
amiga:
strategy:
matrix:
include: [
{host: "ppc-amigaos"},
{host: "ppc-morphos", buildflags: "-noixemul"},
]
runs-on: ubuntu-latest
container: amigadev/crosstools:${{ matrix.host }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Create and run Autotools configure script
run: |
autoconf
CC="${{ matrix.host }}-gcc ${{ matrix.buildflags }}" ./configure --host=${{ matrix.host }}
- name: Autotools build
run: |
make -j 3
AddressSanitizer:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install dependencies
run: sudo apt install unrar
- name: Create and run configure script
run: |
export CC=clang
export CFLAGS="-fsanitize=address,undefined -fno-sanitize-recover=all -fno-sanitize=shift-base -fno-omit-frame-pointer -g"
export LDFLAGS="$CFLAGS"
autoconf; ./configure
(cd test-dev; autoconf; ./configure)
- name: Build library
run: make -j 3
- name: Build and run test
run: make check
- name: Build and run regression tests
run: (cd test-dev && make -j 3)
MemorySanitizer:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install dependencies
run: sudo apt install unrar
- name: Create and run configure script
run: |
export CC=clang
export CFLAGS="-fsanitize=memory -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer -g"
export LDFLAGS="$CFLAGS"
autoconf; ./configure
(cd test-dev; autoconf; ./configure)
- name: Build library
run: make -j 3
- name: Build and run test
run: make check
- name: Build and run regression tests
run: (cd test-dev && make -j 3)