librtmp2 0.4.1

librtmp2 — RTMP/RTMPS protocol library
Documentation
name: Fuzz

on:
  push:
  pull_request:
  workflow_dispatch:
  schedule:
    - cron: "0 4 * * 0"

permissions:
  contents: read

env:
  FUZZ_SECONDS: "45"

jobs:
  libfuzzer:
    name: cargo-fuzz (${{ matrix.target }})
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        target:
          - chunk_read
          - handshake_server
          - amf0_skip
          - ertmp_parse
          - control_decode
    steps:
      - uses: actions/checkout@v7
        with:
          persist-credentials: false

      - name: Install nightly Rust
        uses: dtolnay/rust-toolchain@nightly

      - uses: Swatinem/rust-cache@v2

      - name: Install cargo-fuzz
        run: cargo install cargo-fuzz --locked

      - name: Run fuzz target
        run: |
          cargo fuzz run "${{ matrix.target }}" -- \
            -max_total_time=${{ env.FUZZ_SECONDS }} \
            -reload=0 \
            -print_final_stats=1