# Builds and runs the fuzz target for a short amount of time. This is # mainly to protect the fuzz target from bitrot, but hopefully will # also help to quickly catch some bugs before the PR is merged. name: On PRs - Linux-Ubuntu Quick Fuzz concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true on: pull_request: paths-ignore: - "*.md" workflow_dispatch: jobs: Linux: name: 'Ubuntu 22.04 - clang/libFuzzer' runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 - name: install dependencies run: | sudo ./ci/install_dependencies.sh sudo apt-get install ninja-build - name: build and compile run: | cmake --preset linux-sanitizers -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=$(which clang++) -DEXIV2_BUILD_FUZZ_TESTS=ON -DEXIV2_BUILD_UNIT_TESTS=OFF -DEXIV2_ENABLE_VIDEO=ON cmake --build build --parallel - name: Fuzz run: | cd build mkdir corpus LSAN_OPTIONS=suppressions=../fuzz/knownleaks.txt ./bin/fuzz-read-print-write corpus ../test/data/ -dict=../fuzz/exiv2.dict -jobs=$(nproc) -workers=$(nproc) -max_len=4096 -max_total_time=120