Commit Graph

742 Commits

Author SHA1 Message Date
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
jonathanmetzman e06ca92ee4
Install fonts-dejavu on base-runner (#1392)
Install a small (<10MB) font library on base-runner since some fuzzers
(such as image_deserialize_fuzzer) expect them on a system.
2018-05-02 08:33:08 -07:00
Abhishek Arya 04395afc00
Clean artifacts in /out as part of build_fuzzers (#1384) (#1389)
* Clean artifacts in /out as part of build_fuzzers.

* Add prompt before build directory clean, also --no-clean option.
2018-04-30 21:01:48 -07:00
Abhishek Arya 624ea358c7
Match AFL startup crash condition with ClusterFuzz 2018-04-30 14:50:49 -07:00
jonathanmetzman 3971aef60d
[AFL] Improve builds of AFL package. (#1386)
Improve builds of AFL package.

Silence trivial known compile warning when building afl-llvm-rt.o.c
Also, don't build afl-fuzz using CFLAGS and CXXFLAGS since we don't
actually want to sanitize it.

This should cause AFL to be built with -O3 -funroll-loops (the defaults) instead of -fsanitize=... -O1 and -ginline-tables-only.
2018-04-30 13:17:13 -07:00
Robin Richtsfeld 71d91515be Bash (#1382)
* Assigning an array to a string! Assign as array, or use * instead of @ to concatenate.

* Quote the parameter to -name so the shell won't interpret it.
2018-04-30 10:38:48 -07:00
Abhishek Arya 527ef4c7f0
Add AFL bad build checks (instrumentation, startup crash). (#1381)
* Add AFL bad build checks (instrumentation, startup crash).

* Fix incorrect seed corpus unpack for afl bad instrumentation, startup crash test

* Match AFL startup crash check with ClusterFuzz
2018-04-30 09:38:42 -07:00
Abhishek Arya 43fd25f26a
Add check_build command to infra/helper.py (Fix #1356) (#1379)
* Add check_build command to infra/helper.py

* Add exit message.
2018-04-29 18:44:22 -07:00
Alex Gaynor 82ca53f55d Attempt at fixing run_fuzzer for honggfuzz (#1370) 2018-04-27 07:56:18 -07:00
Max Moroz a51ea6df92 [infra] Temporarily disable bad build check with seed corpus. 2018-04-27 07:10:08 -07:00
Oliver Chang 924a786039
Update run_minijail 2018-04-27 13:46:39 +10:00
Max Moroz 69ffa9bfdf
[infra] Invoke run_fuzzer from bad_build_check for regression testing (fixes #1355). (#1357)
* [infra] Invoke run_fuzzer from bad_build_check for regression testing (fixes #1355).

* Address review comments.
2018-04-26 07:17:44 -07:00