<div dir="ltr">Hi,<div><br></div><div>Thanks a lot for the tests and the info!</div><div><br></div><div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><span style="color:rgb(0,0,0)">Looks like one of the binaries got simply unlucky with a particular seed. </span></div></div></blockquote><div><br></div><div>Ouch... I should have tried :/</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Conclusions: </div><div>* testing a fuzzing engine is not trivial :( </div><div>* testing it on a very short run with a single seed may be misleading</div></div></blockquote><div><br></div><div>Yup. I'll try to be more careful with this in the future.</div><div><br></div><div>And if I'll have time, I'll try to analyze that coverage plateau a bit. It would be insightful to know which mutation takes the fuzzer beyond the 60 basic blocks, and which of the coverage counters picks up the change -- even if it's just one specific case for one specific benchmark.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>BTW, I am also looking into more automation of libFuzzer testing.</div><div>With trace-pc-guard we now have libFuzzer's flag -print_coverage=1 that will print all the covered lines. </div><div>My hope is that this feature can be used for more detailed analysis of coverage differences.</div></div></blockquote><div><br></div><div>Cool. I'll give this a try too. I have some ideas about testing and analyzing coverage... will post them on libfuzzer@ once they are more mature.</div><div><br></div><div>Cheers,</div><div>Jonas</div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_extra"><div class="gmail_quote">On Wed, Sep 21, 2016 at 6:00 AM, Jonas Wagner <span dir="ltr"><<a href="mailto:jonas.wagner@epfl.ch" target="_blank">jonas.wagner@epfl.ch</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hello,<div><br></div><div><div class="gmail_quote"><span><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>Is this reproducible? </div><div>Fuzzing is a probabilistic business and one or even two runs don't prove much. </div></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><span style="line-height:1.5"></span></div></div></div></div></blockquote><div><br></div></span><div>I've reproduced the behavior on two different machines. Attached is a script to do so. To use the script,</div><div><br></div><div>- create an empty folder and copy both prune-blocks.sh and ff-http-parser.sh in there</div><div><span style="line-height:1.5">- ensure clang and clang++ are in your $PATH</span></div><div>- cd /path/to/prune-blocks.sh</div><div>- ./prune-blocks.sh</div><div><br></div><div>Let me know how it goes.</div><span><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div><span style="line-height:1.5">Note that I am going to change all of these coverage options soon. </span><br></div></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>The new thing will be <a href="http://clang.llvm.org/docs/SanitizerCoverage.html#tracing-pcs-with-guards" target="_blank">http://clang.llvm.org/docs/SanitizerCoverage.html#tracing-pcs-with-guards</a></div><div>It will replace regular (boolean) and 8-bit-counters coverage.  </div></div></div></div></blockquote><div><br></div></span><div>Yay, sounds exciting! I've done a couple experiments to measure the performance and effect of the different coverage options in the recent past. If you're interested, I'd be happy to discuss off-list; simply send me an email.</div><div><br></div><div>Best,</div><div>Jonas</div></div></div></div>
</blockquote></div><br></div>
</blockquote></div></div></div>