Commit Graph

753 Commits

Author SHA1 Message Date
Max Moroz 0fe45f59a7
[infra] Re-enable UIO for UBSan in a non-faulting mode (#910). (#1690) 2018-08-07 10:04:25 -07:00
Evgeny Vereshchagin d2d9860ecd [infra] skip the rest of check_instrumentation if grep hasn't found anything (#1689)
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 ")
```
2018-08-04 18:14:29 -07:00
Max Moroz 815727b0b3
[infra] Add retry wrapper to LLVM checkout commands. (#1668)
* [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.
2018-07-27 14:19:32 -07:00
Max Moroz dbe2731d93
[infra] Print logs URL for base images and msan libs. (#1666) 2018-07-27 10:07:54 -07:00
Max Moroz 6b761f3826
[infra] Export coverage data in JSON format for picking up by CF. (#1665) 2018-07-27 07:34:02 -07:00
Oliver Chang 180c87f194 gcb: add env to targets_list step 2018-07-27 15:34:24 +10:00
Oliver Chang 2ef8e32bfa Move targets_list to base-runner. 2018-07-27 14:59:02 +10:00
Oliver Chang bf75778262 pyformat python code in gcb dir. 2018-07-27 13:32:39 +10:00
Oliver Chang 60fb6a8d7b
Generate and upload targets list during build. (#1660) 2018-07-27 13:29:51 +10:00
Abhishek Arya c328ff7518
Speculative fix for firefox build fix. (#1661)
* Speculative fix for firefox build fix.

* Use a yaml attribute.
2018-07-26 19:49:56 -07:00
Max Moroz 704da2ddac
[infra] Do not force our LLVM revision. (#1653) 2018-07-26 10:01:41 -07:00
Max Moroz 218f5dc3cf
[infra] Add an option to disable serving coverage report over HTTP (needed for #1547). (#1635) 2018-07-20 15:43:08 -07:00
Max Moroz 645a0375fe
[infra] Support extra arguments for llvm-cov + update the binaries. (#1629)
* [infra] Support extra arguments for llvm-cov + update the binaries.

* Slightly change the doc to be less confusing.
2018-07-19 15:58:58 -07:00
Oliver Chang 40326f9520 Add libcap2 to base-runner image. 2018-07-09 17:22:15 +10:00
Oliver Chang 621cb43076
helper: Better support for building from local source (#1589). (#1595)
Parse WORKDIR from the Dockerfile and use that to mount in the local
source.
2018-07-04 14:23:23 +10:00
Abhishek Arya 12982882b8
Fix #1591 2018-07-03 09:26:51 -07:00
Abhishek Arya 3af21b0252
Don't check for LLVMFuzzerTestOneInput when there is no fuzzing engine. (#1579) 2018-06-28 07:08:57 -07:00
Abhishek Arya 4e87bd622d
Revert "Add support for running perffuzz in infra/helper.py (#1540)" (#1578)
This reverts commit 7f26e2fd92.
2018-06-28 06:11:32 -07:00
Abhishek Arya d24dfd4971
Revert #1560 2018-06-27 08:27:13 -07:00
Abhishek Arya bcf3d1dfa8
Revert "[infra] Compile fuzzing engine without SANITIZER_FLAGS unless MSan is used. (#1522)" (#1574)
This reverts commit 63d9392e59.
2018-06-26 13:08:14 -07:00
jonathanmetzman 9c2fe11666
Fix check for LLVMFuzzerTestOneInput (#1572) 2018-06-26 08:23:56 -07:00
jonathanmetzman 5ea8600f84
Remove test_report since it isn't usable from anywhere (#1569) 2018-06-25 16:59:21 -07:00
jonathanmetzman 36e576467c
Fix bad build check. (#1568)
* 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.
2018-06-25 16:35:28 -07:00
Abhishek Arya ffe166e75c
Fix #1560 2018-06-25 14:59:03 -07:00
Oliver Chang 952a758fce
Downgrade clang (#1560) 2018-06-25 14:25:35 +10:00
Max Moroz c05848b347 [infra] Set UBSAN_CALLS_THRESHOLD_FOR_NON_UBSAN_BUILD back to 200 + add an explanation (#1542). 2018-06-20 07:54:20 -07:00
Max Moroz 52fe2acc1a [infra] Fix bad build check for UBSan since we compile engines without sanitizers now (fixes #1542). 2018-06-20 07:21:54 -07:00
Abhishek Arya 7f26e2fd92
Add support for running perffuzz in infra/helper.py (#1540)
* Add support for running perffuzz in infra/helper.py
https://github.com/carolemieux/perffuzz

* Update compile_perffuzz

* Update run_fuzzer
2018-06-19 15:02:00 -07:00
Max Moroz 9874e09f53
[infra] helper.py: support "profile" command for a single fuzz target with arbitrary corpus location. (#1535)
* [infra] helper.py: support "profile" command for a single fuzz target with arbitrary corpus location.

* Address review feedback.

* Update code_coverage.md page.
2018-06-18 14:19:48 -07:00
Alex Gaynor d48b11f529 [infra] helper.py: rewrite conditional to be more readable and idiomatic (#1534)
* Rewerite conditional to be more readable and idiomatic

* In fact, simplify further
2018-06-18 11:13:36 -07:00
Max Moroz 6d72d18132 [infra] helper.py profile: do not append project name prefix to fuzz target name if it is there. 2018-06-18 10:57:09 -07:00
Max Moroz 95a3d83a69 [infra] profile: do not run fuzz targets if corpus downloading has failed. 2018-06-18 10:44:42 -07:00
Max Moroz 63d9392e59
[infra] Compile fuzzing engine without SANITIZER_FLAGS unless MSan is used. (#1522)
* [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.
2018-06-18 10:10:01 -07:00
Max Moroz 883cdcf3b0
[infra] Fix helper.py as per feedback from @evverx + fix issues from #1519. (#1520)
* [infra] Fix helper.py as per feedback from @evverx + fix issues from #1519.

* Remove stuff from local testing

* Suppress unnecessary output from GSUtil.
2018-06-15 10:44:18 -07:00
Alex Gaynor 82108f6083 Refs #799 -- use python to listdir instead of shelling out to find (#1519) 2018-06-15 08:20:27 -07:00
Max Moroz 20e55ce3b1
[infra] Enable clange code coverage reports generation for local runs. (#1494)
* [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.
2018-06-14 15:00:46 -07:00
Alex Gaynor 1bfe76536e Some small cleanups for helper.py + a py3k fix (#1513) 2018-06-13 09:26:08 +10:00
Abhishek Arya f70beebef4
Don't allow project names longer than 26 characters. (#1507)
This is required to have service accounts with name of the form
bot-<project_name> which needs to be within 30 characters.
2018-06-12 08:21:58 -07:00
Oliver Chang 59c32cdca0
Add MSAn instrumented libraries steps to build_fuzzers (#1419). (#1482) 2018-06-05 09:12:53 +10:00
Abhishek Arya 47d8e4bdb6
Increase retry value to avoid build failures (#1468) 2018-06-02 09:12:31 -07:00
Max Moroz cfa75aa5c5 [infra] Bump LLVM revision to r333631 (fixes #1475). 2018-06-01 13:02:38 -07:00
Oliver Chang 2920beb131 Freeze gcb requirements. 2018-06-01 11:48:42 +10:00
Oliver Chang 5d11b552e8
Update requirements.txt 2018-06-01 11:30:50 +10:00
Max Moroz 8b206083f7 [infra] Bump LLVM revision to r333416 (fixes #1469, #1279). 2018-05-31 12:52:59 -07:00
Oliver Chang d9470966b8
Update builds_status.py 2018-05-30 18:40:19 +10:00
Oliver Chang 24aaf6015a
Update builds_status.py 2018-05-30 18:34:57 +10:00
Max Moroz 65ac8a3ba8 [infra] Bring 'profile' configuration back to helper.py for testing coverage. 2018-05-23 11:34:07 -07:00
Abhishek Arya 4557d57b9b
Fix typo in bad_build_check (#1432) 2018-05-20 21:21:09 -07:00
jonathanmetzman 7b9bc817cd
Use "jobs -rp" instead of "jobs -p" to avoid infinite loop. (#1411) 2018-05-10 17:47:05 -07:00
Abhishek Arya 8b756828bc
Remove prompts in build_fuzzers, keep no clean as default. (#1403) 2018-05-08 07:24:57 -07:00