2016-11-18 19:56:01 +00:00
|
|
|
# ClusterFuzz
|
|
|
|
|
2019-02-08 01:54:49 +00:00
|
|
|
[ClusterFuzz](https://github.com/google/clusterfuzz) is the distributed fuzzing infrastructure behind OSS-Fuzz. It was initially built
|
2016-11-18 20:05:42 +00:00
|
|
|
for fuzzing Chrome at scale.
|
2016-11-18 19:56:01 +00:00
|
|
|
|
|
|
|
## Web interface
|
|
|
|
|
2017-03-15 20:09:03 +00:00
|
|
|
ClusterFuzz provides a [web interface](https://oss-fuzz.com)
|
2016-11-30 16:29:19 +00:00
|
|
|
to view statistics about your fuzz targets, as well as current crashes.
|
2016-11-18 19:56:01 +00:00
|
|
|
|
2017-03-15 16:25:56 +00:00
|
|
|
*Note*: Access is restricted to project developers who we auto CC on new bug reports.
|
2016-11-18 19:56:01 +00:00
|
|
|
|
2017-03-15 20:09:03 +00:00
|
|
|
## Testcase reports
|
|
|
|
|
|
|
|
ClusterFuzz will automatically de-duplicate and file reproducible crashes into
|
|
|
|
our [bug tracker](https://bugs.chromium.org/p/monorail). We provide a crash
|
|
|
|
report page that gives you the stack trace, a link to the crashing testcase, and
|
|
|
|
regression ranges where the bug was most likely introduced.
|
|
|
|
|
2017-04-24 22:58:16 +00:00
|
|
|
![report](images/pcre2_testcase.png?raw=true)
|
2017-03-15 20:09:03 +00:00
|
|
|
|
2016-11-18 19:56:01 +00:00
|
|
|
## Fuzzer stats
|
|
|
|
|
2016-11-30 16:29:19 +00:00
|
|
|
You can view statistics about your fuzz targets (e.g. speed, coverage information,
|
2016-11-18 20:05:42 +00:00
|
|
|
memory usage) on our fuzzer statistics dashboard.
|
2016-11-18 19:56:01 +00:00
|
|
|
|
2018-02-22 18:26:50 +00:00
|
|
|
![stats](images/freetype_stats_graphs.png?raw=true)
|
2018-02-22 18:24:41 +00:00
|
|
|
|
|
|
|
![stats](images/freetype_stats_table.png?raw=true)
|
2016-11-18 19:56:01 +00:00
|
|
|
|
|
|
|
## Coverage reports
|
|
|
|
|
2017-03-15 20:09:03 +00:00
|
|
|
We provide coverage reports, where we highlight the parts of source code that are being
|
2017-04-21 14:55:58 +00:00
|
|
|
reached by your fuzz target. Make sure to look at the uncovered code marked in red and
|
|
|
|
add appropriate fuzz targets to cover those usecases.
|
2016-11-18 19:56:01 +00:00
|
|
|
|
2017-04-24 22:58:16 +00:00
|
|
|
![coverage_1](images/freetype_coverage_1.png?raw=true)
|
|
|
|
![coverage_2](images/freetype_coverage_2.png?raw=true)
|
2016-11-18 19:56:01 +00:00
|
|
|
|
2017-03-15 20:09:03 +00:00
|
|
|
## Performance analyzer
|
2016-11-18 19:56:01 +00:00
|
|
|
|
2017-04-21 14:55:58 +00:00
|
|
|
You can view performance issues that your fuzz target is running into (e.g. leaks, timeouts,
|
|
|
|
etc) by clicking on `Performance` link on our fuzzer statistics dashboard. Make sure to fix
|
|
|
|
all cited issues, so as to keep your fuzz target running efficiently and finding new bugs.
|
2016-11-18 19:56:01 +00:00
|
|
|
|
2017-04-24 22:58:16 +00:00
|
|
|
![performance_analyzer](images/expat_performance_analyzer.png?raw=true)
|
2016-11-18 19:56:01 +00:00
|
|
|
|
2017-04-24 22:58:16 +00:00
|
|
|
## Crash stats
|
2016-11-18 19:56:01 +00:00
|
|
|
|
2017-04-24 22:58:16 +00:00
|
|
|
You can view statistics of crashes over time on our crash statistics dashboard.
|
|
|
|
|
|
|
|
![crash_stats](images/crash_stats.png?raw=true)
|