libFuzzer and ClusterFuzz Integration

Most links on this page are private.

ClusterFuzz is a distributed fuzzing infrastructure (go/clusterfuzz) that automatically executes libFuzzer tests on scale.

Status Links

Integration Details

The integration between libFuzzer and ClusterFuzz consists of:

  • Build rules definition in fuzzer_test.gni.
  • Buildbot that automatically discovers fuzzers using gn refs facility, builds fuzzers with multiple sanitizers and uploads binaries to a special GCS bucket. Build bot recipe is defined in chromium_libfuzzer.py.
  • ClusterFuzz downloads new binaries once a day and runs fuzzers continuously.
  • Fuzzing corpus is maintained for each fuzzer in Corpus GCS Bucket. Once a day corpus is minimized to reduce number of duplicates and/or reduce effect of parasitic coverage.
  • ClusterFuzz Fuzzer Status displays fuzzer runtime metrics as well as provides links to crashes and coverage reports. The information is collected every 30 minutes.