Testing: fuzz targets exist but are never run — no CI integration #135

Closed
opened 2026-07-21 16:26:50 +02:00 by TapTap · 0 comments
Owner

The project has 6 fuzz targets in tests/fuzz/:

  • fuzz_chunk_deserialize.c
  • fuzz_compress_decompress.c
  • fuzz_delta_deserialize.c
  • fuzz_delta_signature_deserialize.c
  • fuzz_glob_match.c
  • fuzz_metadata_from_buf.c

However:

  1. The CI workflow only builds the fuzz targets but never runs them
  2. There is no cmake --build build-fuzz --target fuzz step that executes the fuzzers
  3. There is no fuzzing corpus checked into the repository
  4. No regression tests for previously-found fuzz crashes
  5. No OSS-Fuzz integration

Suggested improvements

  1. Add a CI job that runs each fuzz target for a short duration (e.g., 30 seconds each) to catch regressions
  2. Check in a minimal seed corpus for each fuzz target
  3. Add a CIFuzz GitHub Action or Gitea equivalent for regression fuzzing on PRs
  4. Consider OSS-Fuzz integration for continuous fuzzing
  5. Add coverage-guided fuzzing with -runs=N and -max_total_time=N flags

The build already works (cmake -B build-fuzz -S . -DENABLE_FUZZ=ON && cmake --build build-fuzz), just the run step is missing.

Labels: testing, security, fuzzing, ci

The project has **6 fuzz targets** in `tests/fuzz/`: - `fuzz_chunk_deserialize.c` - `fuzz_compress_decompress.c` - `fuzz_delta_deserialize.c` - `fuzz_delta_signature_deserialize.c` - `fuzz_glob_match.c` - `fuzz_metadata_from_buf.c` However: 1. The CI workflow only **builds** the fuzz targets but never runs them 2. There is no `cmake --build build-fuzz --target fuzz` step that executes the fuzzers 3. There is no fuzzing corpus checked into the repository 4. No regression tests for previously-found fuzz crashes 5. No OSS-Fuzz integration ## Suggested improvements 1. Add a CI job that runs each fuzz target for a short duration (e.g., 30 seconds each) to catch regressions 2. Check in a minimal seed corpus for each fuzz target 3. Add a CIFuzz GitHub Action or Gitea equivalent for regression fuzzing on PRs 4. Consider OSS-Fuzz integration for continuous fuzzing 5. Add coverage-guided fuzzing with `-runs=N` and `-max_total_time=N` flags The build already works (`cmake -B build-fuzz -S . -DENABLE_FUZZ=ON && cmake --build build-fuzz`), just the run step is missing. **Labels**: testing, security, fuzzing, ci
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: TapTap/FastSync#135