When a fuzzer is seriously broken (which happens occasionally during debug),
it's unlikely to start properly let alone provide some meaningful
output. In this case, it seems reasonable to skip some checks and prevent bash
from encountering the following syntax error:
```
/usr/local/bin/bad_build_check: line 68: ((: < 100 : syntax error: operand expected (error token is "< 100 ")
```
* [infra] Add retry wrapper to LLVM checkout commands.
* Fix a typo.
* Clean up the retry wrapper as per discussion with Abhishek.
* Fix disabling / enabling exit-on-error mode, bash is hard!
* Fix a comment.
* Fix bad build check.
Bad build checks previously just checked that a file is an executable
ELF. This is insufficient because libraries are also executable ELFs.
Add a check that the file contains LLVMFuzzerTestOneInput, in order
to consider a fuzz target.
Also update coverage and test_report for consistency.
* [infra] helper.py: support "profile" command for a single fuzz target with arbitrary corpus location.
* Address review feedback.
* Update code_coverage.md page.
* [infra] Compile fuzzing engine without SANITIZER_FLAGS unless MSan is used.
* Use an additional FUZZING_ENGINE_SANITIZER_FLAGS variable and simplify the script
* Use $FUZZING_ENGINE_SANITIZER_FLAGS in compile_libfuzzer.
* [infra] Fix helper.py as per feedback from @evverx + fix issues from #1519.
* Remove stuff from local testing
* Suppress unnecessary output from GSUtil.
* [infra] Enable clange code coverage reports generation for local runs.
* Use runner image and move corpus management to the helper.py
.
* Clean up, delete unnecessary stuff, add comments.
* Run fuzz targets in parallel. Do not exit in case of an error.
* Address review feedback, except of the threading thing.
* Fix a typo.
* Use ThreadPool implementatino available in standard python2.7 package.
* Add dry run support + no corpus download option.
* Fix flags handling + add log output in case of an error.
* Append arguments for fuzz target instead of replacing them.
* Remove dry run functionality as it currently errors out after two runs.
* Fix some spacing in the code.
* Update documentation regarding new code coverage script.