strategy:
matrix:
include:
- - { sys: mingw32, env: i686 }
- - { sys: mingw64, env: x86_64 }
+ - { 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 }
defaults:
run:
shell: msys2 {0}
- uses: actions/checkout@v3
- uses: msys2/setup-msys2@v2
with:
- msystem: ${{matrix.sys}}
+ msystem: ${{matrix.msystem}}
update: true
install: >
autoconf
automake
+ git
libtool
- pkg-config
make
- mingw-w64-${{matrix.env}}-cc
+ ${{matrix.cc_pkg}}
+ pkgconf
+ - run: CFLAGS="$DEF_CFLAGS" ./tools/make-windows-release
+
+ fuzz-with-libFuzzer:
+ name: Fuzz with libFuzzer (${{matrix.target}} ${{matrix.sanitizer}})
+ strategy:
+ matrix:
+ include:
+ - target: wim
+ sanitizer:
+ - target: wim
+ sanitizer: --asan --ubsan
+ - target: xml
+ sanitizer:
+ - target: xml
+ 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@v3
+ - name: Install dependencies
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y clang $DEPENDENCIES
- run: ./bootstrap
- - run: ./configure CFLAGS="$DEF_CFLAGS" --without-fuse --without-ntfs-3g
- - run: make -j8
+ - name: Fuzz
+ run: |
+ tools/libFuzzer/fuzz.sh --time=120 ${{matrix.sanitizer}} \
+ ${{matrix.target}}