Skip to content

Fuzz Testing

Fuzz Testing #16

Workflow file for this run

# .github/workflows/fuzz.yml
name: "Fuzz Testing"
on:
schedule:
- cron: "0 3 * * 6" # Saturday 03:00 UTC
workflow_dispatch: # allow manual trigger
permissions: {}
jobs:
fuzz:
name: "Fuzz (${{ matrix.target }})"
runs-on: ubuntu-latest
permissions:
contents: read
strategy:
fail-fast: false
matrix:
target:
- fuzz_config_parser
- fuzz_sse_parser
- fuzz_market_event
- fuzz_order_validation
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: dtolnay/rust-toolchain@nightly
- name: Install cargo-fuzz
run: cargo install --locked cargo-fuzz
- name: Run fuzzer (${{ matrix.target }})
run: |
cd fuzz
cargo fuzz run ${{ matrix.target }} -- \
-max_total_time=300 \
-max_len=4096
continue-on-error: true # don't block CI, but report
- name: Upload crash artifacts
if: failure()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: fuzz-crashes-${{ matrix.target }}
path: fuzz/artifacts/