microsoft / onefuzz

A self-hosted Fuzzing-As-A-Service platform
MIT License
2.82k stars 199 forks source link

Coverage: allow `record` example to pass multiple files at once #3349

Open Porges opened 1 year ago

Porges commented 1 year ago

LibFuzzer targets have the ability to consume many files on the command-line rather than being fed one input file at a time. Taking advantage of this has the potential to speed up coverage generation greatly with large corpuses.

I've tested this with some 4000 files, and the libfuzzer example from the integration tests:

Before:

real    6m17.137s
user    1m6.591s
sys     5m25.489s

With --batch-inputs:

real    0m4.528s
user    0m2.076s
sys     0m2.078s
codecov-commenter commented 1 year ago

Codecov Report

Merging #3349 (60b781c) into main (58447f7) will decrease coverage by 1.41%. The diff coverage is n/a.

@@            Coverage Diff             @@
##             main    #3349      +/-   ##
==========================================
- Coverage   34.34%   32.94%   -1.41%     
==========================================
  Files         297      269      -28     
  Lines       36250    31289    -4961     
==========================================
- Hits        12450    10308    -2142     
+ Misses      23800    20981    -2819     

see 58 files with indirect coverage changes