Skip to content

mount_image.c: add fallback definitions of RENAME_* constants #198

mount_image.c: add fallback definitions of RENAME_* constants

mount_image.c: add fallback definitions of RENAME_* constants #198

Workflow file for this run

name: CI
on: [pull_request, push]
env:
DEF_CFLAGS: -O2 -g -Wall -Werror
DEPENDENCIES: autoconf automake libtool pkgconf libfuse3-dev fuse3 ntfs-3g-dev ntfs-3g
jobs:
gcc-build-and-test:
name: Build and test with gcc
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y $DEPENDENCIES
- run: ./bootstrap
- run: ./configure CC=gcc CFLAGS="$DEF_CFLAGS"
- run: make -j8 check V=1
- run: make -j8 install V=1 DESTDIR=$PWD/installdir
- run: make -j8 uninstall V=1 DESTDIR=$PWD/installdir
- uses: actions/upload-artifact@v4
if: failure()
with:
name: gcc-test-logs
path: tests/*.log
clang-build-and-test:
name: Build and test with clang
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y clang $DEPENDENCIES
- run: ./bootstrap
- run: ./configure CC=clang CFLAGS="$DEF_CFLAGS"
- run: make -j8 check V=1
- run: make -j8 install V=1 DESTDIR=$PWD/installdir
- run: make -j8 uninstall V=1 DESTDIR=$PWD/installdir
- uses: actions/upload-artifact@v4
if: failure()
with:
name: clang-test-logs
path: tests/*.log
i386-build-and-test:
name: Build and test with gcc -m32
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install -y gcc-multilib $DEPENDENCIES
- run: ./bootstrap
- run: ./configure CC=gcc CFLAGS="-m32 $DEF_CFLAGS" --without-fuse --without-ntfs-3g
- run: make -j8 check V=1
- run: make -j8 install V=1 DESTDIR=$PWD/installdir
- run: make -j8 uninstall V=1 DESTDIR=$PWD/installdir
- uses: actions/upload-artifact@v4
if: failure()
with:
name: i386-test-logs
path: tests/*.log
asan-build-and-test:
name: Build and test with ASAN enabled
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y clang $DEPENDENCIES
- run: ./bootstrap
- run: ./configure CC=clang CFLAGS="$DEF_CFLAGS -fsanitize=address -fno-sanitize-recover=address"
- run: make -j8 check V=1
- uses: actions/upload-artifact@v4
if: failure()
with:
name: asan-test-logs
path: tests/*.log
ubsan-build-and-test:
name: Build and test with UBSAN enabled
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y clang $DEPENDENCIES
- run: ./bootstrap
- run: ./configure CC=clang CFLAGS="$DEF_CFLAGS -fsanitize=undefined -fno-sanitize-recover=undefined"
- run: make -j8 check V=1
- uses: actions/upload-artifact@v4
if: failure()
with:
name: ubsan-test-logs
path: tests/*.log
run-shellcheck:
name: Run shellcheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y shellcheck
- name: Run shellcheck
run: shellcheck tools/*.sh tools/*/*.sh
macos-build-and-test:
name: Build and test on macOS
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
brew install autoconf automake libtool pkg-config
- run: ./bootstrap
- run: ./configure CFLAGS="$DEF_CFLAGS" --without-fuse --without-ntfs-3g
- run: make -j8 check V=1
- run: make -j8 install DESTDIR=$PWD/installdir
- run: make -j8 uninstall DESTDIR=$PWD/installdir
- uses: actions/upload-artifact@v4
if: failure()
with:
name: macos-test-logs
path: tests/*.log
windows-build:
name: Build on Windows
runs-on: windows-latest
strategy:
matrix:
include:
- { msystem: MINGW32, cc_pkg: mingw-w64-i686-gcc }
- { msystem: MINGW64, cc_pkg: mingw-w64-x86_64-gcc }
- { msystem: CLANG32, cc_pkg: mingw-w64-clang-i686-clang }
- { msystem: CLANG64, cc_pkg: mingw-w64-clang-x86_64-clang }
- { msystem: CLANGARM64, options: --install-prerequisites }
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Need tags for tools/get-version-number.sh
- uses: msys2/setup-msys2@v2
with:
msystem: ${{matrix.msystem}}
update: true
install: >
autoconf
automake
git
libtool
make
${{matrix.cc_pkg}}
pkgconf
- run: CFLAGS="$DEF_CFLAGS" ./tools/windows-build.sh ${{matrix.options}}
- uses: actions/upload-artifact@v4
with:
name: windows-${{matrix.msystem}}-bin
path: wimlib-*-bin
win32-test-imagex-capture-and-apply:
name: Run win32-test-imagex-capture_and_apply.bat
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Need tags for tools/get-version-number.sh
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: true
install: >
autoconf
automake
git
libtool
make
mingw-w64-x86_64-gcc
pkgconf
- run: tests/win32-test-imagex-capture_and_apply.sh
fuzz-with-libFuzzer:
name: Fuzz with libFuzzer (${{matrix.target}} ${{matrix.sanitizer}})
strategy:
matrix:
include:
- target: wim
sanitizer:
- target: wim
sanitizer: --asan --ubsan
- target: encoding
sanitizer: --asan --ubsan
- target: xmlproc
sanitizer:
- target: xmlproc
sanitizer: --asan --ubsan
- target: xml_windows
sanitizer: --asan --ubsan
- target: compress
sanitizer:
- target: compress
sanitizer: --asan --ubsan
- target: decompress
sanitizer:
- target: decompress
sanitizer: --asan --ubsan
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y clang $DEPENDENCIES
- run: ./bootstrap
- name: Fuzz
run: |
tools/libFuzzer/fuzz.sh --time=120 ${{matrix.sanitizer}} \
${{matrix.target}}
fuzz-with-wlfuzz-linux:
name: Fuzz with wlfuzz (Linux, ${{matrix.sanitizer}})
strategy:
matrix:
include:
- sanitizer: none
cflags:
- sanitizer: ASAN
cflags: -fsanitize=address -fno-sanitize-recover=address
- sanitizer: UBSAN
cflags: -fsanitize=undefined -fno-sanitize-recover=undefined
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y clang $DEPENDENCIES
- run: ./bootstrap
- run: ./configure --enable-test-support CC=clang CFLAGS="$DEF_CFLAGS ${{matrix.cflags}}"
- run: make -j8 tests/wlfuzz
- run: TMPDIR=$PWD/tmp.wlfuzz tests/wlfuzz 120
fuzz-with-wlfuzz-windows:
name: Fuzz with wlfuzz (Windows)
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Need tags for tools/get-version-number.sh
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: true
install: >
autoconf
automake
git
libtool
make
mingw-w64-x86_64-gcc
pkgconf
- run: CFLAGS="$DEF_CFLAGS" ./tools/windows-build.sh -- --enable-test-support
- run: make tests/wlfuzz.exe
- run: TMPDIR=$PWD/tmp.wlfuzz tests/wlfuzz 120