---

# For the actual fuzzer see tools/oss-fuzz/README.
# also see
# https://google.github.io/oss-fuzz/getting-started/continuous-integration/
#
# Build and run fuzzer for 5s just to check that it runs properly. If it
# consistently fails in under 5s you probably did something wrong

# If you came here to quickly copy/paste the invocation of some build
# script in order to reproduce a failure reported by github then you
# will be disappointed by the Github Action below: it's magical. For a
# thorough reproduction you must follow the links above. For a quick,
# dirty and incomplete reproduction hack you can try the following two
# lines. Don't do this at home.
#
#   OUT=unused_dir  cmake -B oss-fuzz-build/ -S tools/oss-fuzz/
#   make -j -C oss-fuzz-build sof_ep fuzz_ipc.o

name: IPC fuzzer compile test

# 'workflow_dispatch' allows running this workflow manually from the
# 'Actions' tab

# yamllint disable-line rule:truthy
on: [pull_request, workflow_dispatch]

jobs:
  ipc-fuzzer-build:
    runs-on: ubuntu-latest
    steps:
      - name: Build Fuzzers
        uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
        with:
          oss-fuzz-project-name: 'sound-open-firmware'

      - name: Run Fuzzers
        uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
        with:
          oss-fuzz-project-name: 'sound-open-firmware'
          language: c
          fuzz-seconds: 5
