Matt Morehouse
86db6dd2ed
[libFuzzer] Disable optimization for exit_on_src_pos.test.
...
Test fails on Darwin with -O2.
llvm-svn: 328634
2018-03-27 16:40:34 +00:00
Matt Morehouse
22a1afd99f
[libFuzzer] Place volatile after pointer types.
...
For a few tests, volatile was placed before the '*' in pointer
declarations, resulting in it applying to the underlying data rather
than the pointer itself. Placing volatile after the '*' allows us to
switch those tests to -O2.
llvm-svn: 328633
2018-03-27 16:40:20 +00:00
Matt Morehouse
93ce24838c
[libFuzzer] Do not optimize minimize_two_crashes.test.
...
Speculative fix for build bot breakage on Mac.
llvm-svn: 328576
2018-03-26 19:36:20 +00:00
Matt Morehouse
5317f2e4c9
[libFuzzer] Use OptForFuzzing attribute with -fsanitize=fuzzer.
...
Summary:
Disables certain CMP optimizations to improve fuzzing signal under -O1
and -O2.
Switches all fuzzer tests to -O2 except for a few leak tests where the
leak is optimized out under -O2.
Reviewers: kcc, vitalybuka
Reviewed By: vitalybuka
Subscribers: cfe-commits, llvm-commits
Differential Revision: https://reviews.llvm.org/D44798
llvm-svn: 328384
2018-03-23 23:35:28 +00:00
George Karpenkov
430aa7405f
[libFuzzer] Disable equivalence-signals test on Darwin due to persistent failures
...
llvm-svn: 328125
2018-03-21 17:55:36 +00:00
Petr Hosek
2d19f9036e
[Fuzzer] Avoid the unnecessary rebuild of the custom libc++
...
This changes the add_custom_libcxx macro to resemble the
llvm_ExternalProject_Add. The primary motivation is to avoid
unnecessary libFuzzer rebuilds that are being done on every
Ninja/Make invocation. The libc++ should be only rebuilt whenever
the libc++ source itself changes.
Differential Revision: https://reviews.llvm.org/D43213
llvm-svn: 326921
2018-03-07 18:14:09 +00:00
Hiroshi Inoue
93eaad7dac
[NFC] fix trivial typos in comments
...
"the the" -> "the"
llvm-svn: 323080
2018-01-22 07:51:37 +00:00
Petr Hosek
eac2b47b9f
Reland "[libFuzzer] Support using libc++"
...
This is needed in case the users of libFuzzer use libc++ in their
code, which the fuzz target (libFuzzer) will be linked against.
When libc++ source is available, we build a private version of it
and link it against libFuzzer which allows using the same static
library against codebases which use both libc++ and libstdc++.
Differential Revision: https://reviews.llvm.org/D37631
llvm-svn: 322755
2018-01-17 20:39:14 +00:00
Petr Hosek
68bc4bd6e5
Revert "[libFuzzer] Support using libc++"
...
This reverts commit r322604: test is failing for standalone compiler-rt.
llvm-svn: 322689
2018-01-17 17:24:56 +00:00
Petr Hosek
a1b57e694e
[libFuzzer] Support using libc++
...
This is needed in case the users of libFuzzer use libc++ in their
code, which the fuzz target (libFuzzer) will be linked against.
When libc++ source is available, we build a private version of it
and link it against libFuzzer which allows using the same static
library against codebases which use both libc++ and libstdc++.
Differential Revision: https://reviews.llvm.org/D37631
llvm-svn: 322604
2018-01-17 00:42:48 +00:00
Matt Morehouse
59e4e400c3
[libFuzzer] Fix bug introduced in r322380 that always links -lc++.
...
llvm-svn: 322409
2018-01-12 22:10:47 +00:00
Kamil Rytarowski
e81e944199
lib Fuzzer FreeBSD support
...
Summary: Patch by David CARLIER
Reviewers: vitalybuka, kcc, dim, emaste, davide, morehouse, george.karpenkov
Reviewed By: morehouse
Subscribers: george.karpenkov, kubamracek, srhines, mgorny, emaste, krytarowski
Differential Revision: https://reviews.llvm.org/D41642
llvm-svn: 322380
2018-01-12 17:15:05 +00:00
Kostya Serebryany
b99a7102c1
[libFuzzer] make the tests depend on ubsan
...
llvm-svn: 320787
2017-12-15 01:39:52 +00:00
Kostya Serebryany
e9ed2327b6
[libFuzzer] change the strategy for -experimental_len_control to grow max_len slower
...
llvm-svn: 320531
2017-12-12 23:11:28 +00:00
Kostya Serebryany
de891a1946
[libFuzzer] even less aggressive step function for stack depth. Also don't use asan in one test to speed it up
...
llvm-svn: 320259
2017-12-09 19:18:10 +00:00
Kostya Serebryany
de9bafb162
[libFuzzer] add a flag -malloc_limit_mb
...
llvm-svn: 319590
2017-12-01 22:12:04 +00:00
Matt Morehouse
6497193cfe
[libFuzzer] Fix flaky merge.test.
...
llvm-svn: 318475
2017-11-17 00:11:12 +00:00
Matt Morehouse
12615ec49b
[libFuzzer] Make merge-sigusr.test work on Mac.
...
llvm-svn: 318465
2017-11-16 23:06:17 +00:00
Kostya Serebryany
dc3c9eb0cf
[libFuzzer] add more tests for merge
...
llvm-svn: 318453
2017-11-16 20:25:45 +00:00
Kostya Serebryany
0e194faeea
[libFuzzer] disable test/fuzzer/merge-sigusr.test on Mac while investigating the bot failure
...
llvm-svn: 318376
2017-11-16 04:52:05 +00:00
Kostya Serebryany
8eb9ca2580
[libFuzzer] respect max_len during merge
...
llvm-svn: 318302
2017-11-15 16:42:52 +00:00
Kostya Serebryany
c183e2c33b
[libFuzzer] trying to make sigusr tests more reliable
...
llvm-svn: 317852
2017-11-10 00:26:23 +00:00
Kostya Serebryany
e8637f45ea
[libFuzzer] split a test into two
...
llvm-svn: 317851
2017-11-10 00:18:13 +00:00
Kostya Serebryany
533cbf749c
[libFuzzer] use pkill instead of killall in a test since the bots don't have killall
...
llvm-svn: 317840
2017-11-09 22:01:06 +00:00
Kostya Serebryany
54a8456005
[libFuzzer] make sure to flush IO when done merging one file
...
llvm-svn: 317835
2017-11-09 21:30:33 +00:00
Matt Morehouse
947838c9c5
[libFuzzer] Don't add leaking inputs to corpus.
...
Reviewers: kcc
Reviewed By: kcc
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D39850
llvm-svn: 317831
2017-11-09 20:44:08 +00:00
Kostya Serebryany
a2ca2dcc46
[libFuzzer] handle SIGUSR1/SIGUSR2 and try to exit grafully on these signals
...
llvm-svn: 317829
2017-11-09 20:30:19 +00:00
Kostya Serebryany
3ac31d4453
[libFuzzer] allow merge to resume after being preempted
...
llvm-svn: 317767
2017-11-09 05:49:28 +00:00
Kostya Serebryany
e1d121d715
[libFuzzer] mechanically simplify a test, NFC
...
llvm-svn: 317756
2017-11-09 02:13:43 +00:00
Kostya Serebryany
8a94f220aa
[libFuzzer] fix a test (and hopefully, the bot)
...
llvm-svn: 317749
2017-11-09 01:45:59 +00:00
Kostya Serebryany
68fdef1f7a
[libFuzzer] allow user to specify the merge control file
...
llvm-svn: 317747
2017-11-09 01:05:29 +00:00
Vitaly Buka
ca9075272b
[fuzzer] Script to detect unbalanced allocation in -trace_malloc output
...
Reviewers: kcc
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D39466
llvm-svn: 317119
2017-11-01 20:27:06 +00:00
Vitaly Buka
7dbc1d8433
[fuzzer] Fix threaded stack printing
...
Reviewers: kcc
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D39397
llvm-svn: 317071
2017-11-01 03:02:59 +00:00
Vitaly Buka
df00e89cdc
Revert "[fuzzer] Fix threaded stack printing and nested mallocs"
...
Fails on darwin
Revert "[fuzzer] Script to detect unbalanced allocation in -trace_malloc output"
Needs previous one.
This reverts commit r317034, r317036.
llvm-svn: 317061
2017-11-01 00:55:52 +00:00
Vitaly Buka
0747700ce1
[fuzzer] Script to detect unbalanced allocation in -trace_malloc output
...
Reviewers: kcc
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D39466
llvm-svn: 317036
2017-10-31 20:50:07 +00:00
Vitaly Buka
58da33e35c
[fuzzer] Fix threaded stack printing and nested mallocs
...
Summary: Nested mallocs are possible with internal symbolizer.
Reviewers: kcc
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D39397
llvm-svn: 317034
2017-10-31 20:49:48 +00:00
Kostya Serebryany
3c9e59d0f6
[libFuzzer] trying to make a test more stable on Mac
...
llvm-svn: 316627
2017-10-25 23:24:45 +00:00
Kostya Serebryany
51823d3aae
[libFuzzer] tweam use_feature_frequency to be less aggressive; run a dummy input before the seed corpus
...
llvm-svn: 315657
2017-10-13 01:12:23 +00:00
Max Moroz
330496c3fc
[libFuzzer] Disable experimental clang coverage support by default.
...
Summary:
It can be enabled via "-use_clang_coverage=1" flag. Reason for disabling:
libFuzzer resets Clang Counters and makes it impossible to generate coverage
report for a regular fuzz target (i.e. not standalone build).
Reviewers: kcc
Reviewed By: kcc
Subscribers: kcc
Differential Revision: https://reviews.llvm.org/D38604
llvm-svn: 315029
2017-10-05 22:41:03 +00:00
Kostya Serebryany
80e9a6ccd1
[libFuzzer] add linux-specific test for gc-sections
...
llvm-svn: 313421
2017-09-15 23:07:18 +00:00
Kostya Serebryany
ad66fefdca
[libFuzzer] test fix
...
llvm-svn: 313411
2017-09-15 22:29:20 +00:00
Max Moroz
1a33da2401
[libFuzzer] Fix lit files to make running tests more straightforward on Mac OS.
...
Summary:
Current implementation does not work if CMAKE_OSX_SYSROOT is not specified.
It silently generates invalid command with the following flags:
`-std=c++11 -lc++ -gline-tables-only -isysroot -fsanitize=address,fuzzer`
and then fails with the following error:
```
warning: no such sysroot directory: '-fsanitize=address,fuzzer' [-Wmissing-sysroot]"
<...>/RepeatedBytesTest.cpp:5:10: fatal error: 'assert.h' file not found
#include <assert.h>
^~~~~~~~~~
1 error generated.
```
However, if you have Command Line Tools installed, you have '/usr/include' dir.
In that case, it is not necessary to specify isysroot path.
Also, with the patch, in case of '/usr/include' does not exist, the '-sysroot'
path would be resolved automatically in compiler-rt/cmake/base-config-ix.cmake.
For more context, see the comment at `compiler-rt/cmake/base-config-ix.cmake#L76`
Reviewers: kcc, george.karpenkov
Reviewed By: kcc, george.karpenkov
Differential Revision: https://reviews.llvm.org/D37721
llvm-svn: 313033
2017-09-12 15:02:10 +00:00
Max Moroz
3f26dac416
[libfuzzer] Compare TotalNumberOfRuns with MaxNumberOfRuns when testing a memory leak.
...
Summary:
Fuzzer::TryDetectingAMemoryLeak may call ExecuteCallback which would
increment TotalNumberOfRuns, but it doesn't respect Options.MaxNumberOfRuns
value specified by a user.
Context: https://github.com/google/oss-fuzz/issues/822#issuecomment-328153970
Reviewers: kcc
Reviewed By: kcc
Differential Revision: https://reviews.llvm.org/D37632
llvm-svn: 312993
2017-09-12 02:01:54 +00:00
Kostya Serebryany
754e584076
[libFuzzer] simplify CustomCrossOverTest even more
...
llvm-svn: 312697
2017-09-07 05:33:05 +00:00
Kostya Serebryany
57c03648e1
[libFuzzer] simplify CustomCrossOverTest a bit more
...
llvm-svn: 312695
2017-09-07 05:23:23 +00:00
Kostya Serebryany
d0386fac26
[libFuzzer] simplify and re-enable CustomCrossOverTest
...
llvm-svn: 312689
2017-09-07 02:04:06 +00:00
Kostya Serebryany
79cdf36a2c
[libFuzzer] remporary disable an unstable test
...
llvm-svn: 312593
2017-09-05 23:45:54 +00:00
Kostya Serebryany
07490f8415
[libFuzzer] use more iterations for a test
...
llvm-svn: 312356
2017-09-01 19:45:08 +00:00
George Karpenkov
2928375cd2
[libFuzzer] Enable 8-bit counters test on macOS
...
llvm-svn: 312339
2017-09-01 17:13:26 +00:00
Matt Morehouse
034126e507
[SanitizeCoverage] Enable stack-depth coverage for -fsanitize=fuzzer
...
Summary:
- Don't sanitize __sancov_lowest_stack.
- Don't instrument leaf functions.
- Add CoverageStackDepth to Fuzzer and FuzzerNoLink.
- Only enable on Linux.
Reviewers: vitalybuka, kcc, george.karpenkov
Reviewed By: kcc
Subscribers: kubamracek, cfe-commits, llvm-commits, hiraditya
Differential Revision: https://reviews.llvm.org/D37156
llvm-svn: 312185
2017-08-30 22:49:31 +00:00
Matt Morehouse
ba2e61b357
Revert "[SanitizeCoverage] Enable stack-depth coverage for -fsanitize=fuzzer"
...
This reverts r312026 due to bot breakage.
llvm-svn: 312047
2017-08-29 21:56:56 +00:00
Kostya Serebryany
4faeb87ebe
[libFUzzer] change the way we load the seed corpora: instead of loading all files and these executing all files, load and execute them one-by-one. This should reduce the memory usage in many cases
...
llvm-svn: 312033
2017-08-29 20:51:24 +00:00
Matt Morehouse
2ad8d948b2
[SanitizeCoverage] Enable stack-depth coverage for -fsanitize=fuzzer
...
Summary:
- Don't sanitize __sancov_lowest_stack.
- Don't instrument leaf functions.
- Add CoverageStackDepth to Fuzzer and FuzzerNoLink.
- Disable stack depth tracking on Mac.
Reviewers: vitalybuka, kcc, george.karpenkov
Reviewed By: kcc
Subscribers: kubamracek, cfe-commits, llvm-commits, hiraditya
Differential Revision: https://reviews.llvm.org/D37156
llvm-svn: 312026
2017-08-29 19:48:12 +00:00
Kostya Serebryany
c07008653c
[libFuzzer] allow -print_funcs=N: N is the max number of new covered function printed
...
llvm-svn: 311945
2017-08-28 22:52:22 +00:00
George Karpenkov
52a3e48e9f
[libFuzzer] Exclude a test failing on OS X.
...
llvm-svn: 311916
2017-08-28 20:10:30 +00:00
Matt Morehouse
6ec7595b1e
Revert "[SanitizeCoverage] Enable stack-depth coverage for -fsanitize=fuzzer"
...
This reverts r311801 due to a bot failure.
llvm-svn: 311803
2017-08-25 22:01:21 +00:00
Matt Morehouse
f42bd31323
[SanitizeCoverage] Enable stack-depth coverage for -fsanitize=fuzzer
...
Summary:
- Don't sanitize __sancov_lowest_stack.
- Don't instrument leaf functions.
- Add CoverageStackDepth to Fuzzer and FuzzerNoLink.
Reviewers: vitalybuka, kcc
Reviewed By: kcc
Subscribers: cfe-commits, llvm-commits, hiraditya
Differential Revision: https://reviews.llvm.org/D37156
llvm-svn: 311801
2017-08-25 21:18:29 +00:00
Kostya Serebryany
09c4161029
[libFuzzer] prepare tests for switching from -fsanitize-coverage=trace-pc-guard to -fsanitize-coverage=inline-8bit-counters
...
llvm-svn: 311798
2017-08-25 20:20:46 +00:00
Kostya Serebryany
2eef816e6e
[libFuzzer] add -print_funcs=1 (on bey default): print newly discovered functions during fuzzing
...
llvm-svn: 311797
2017-08-25 20:09:25 +00:00
Kostya Serebryany
d3e4b7e24a
[sanitizer-coverage] extend fsanitize-coverage=pc-table with flags for every PC
...
llvm-svn: 311794
2017-08-25 19:29:47 +00:00
Matt Morehouse
b1fa8255db
[SanitizerCoverage] Optimize stack-depth instrumentation.
...
Summary:
Use the initialexec TLS type and eliminate calls to the TLS
wrapper. Fixes the sanitizer-x86_64-linux-fuzzer bot failure.
Reviewers: vitalybuka, kcc
Reviewed By: kcc
Subscribers: hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D37026
llvm-svn: 311490
2017-08-22 21:28:29 +00:00
Kostya Serebryany
868e69091c
[libFuzzer] disable a test failing on the bot
...
llvm-svn: 311427
2017-08-22 05:15:57 +00:00
Kostya Serebryany
33fb36c353
[libFuzzer] fix the stack-depth initialization, add a lit test for DeepRecursionTest.cpp
...
llvm-svn: 311421
2017-08-22 01:50:00 +00:00
George Karpenkov
e4c5322992
[NFC] do not run linter on libFuzzer's tests.
...
llvm-svn: 311419
2017-08-22 01:19:17 +00:00
George Karpenkov
92d8000487
Remove check-fuzzer from check-all, as tests don't pass on some bots.
...
llvm-svn: 311415
2017-08-22 00:54:57 +00:00
George Karpenkov
10ab2ace13
Move libFuzzer to compiler_rt.
...
Resulting library binaries will be named libclang_rt.fuzzer*, and will
be placed in Clang toolchain, allowing redistribution.
Differential Revision: https://reviews.llvm.org/D36908
llvm-svn: 311407
2017-08-21 23:25:50 +00:00