Kostya Serebryany
|
2d1d944f7e
|
[libFuzzer] first steps in adding a proper automated test suite based on real-life code: add a script to build RE2 at a revision that has known bugs
llvm-svn: 282292
|
2016-09-23 20:43:22 +00:00 |
Kostya Serebryany
|
0d26de3922
|
[libFuzzer] reset Counters (trace-pc-guard) before every run
llvm-svn: 282284
|
2016-09-23 20:04:13 +00:00 |
Kostya Serebryany
|
ce1cab169f
|
[libFuzzer] be more precise about what we reset in TracePC
llvm-svn: 282225
|
2016-09-23 02:18:59 +00:00 |
Kostya Serebryany
|
16a145fd0f
|
[libFuzzer] fix merging with trace-pc-guard
llvm-svn: 282224
|
2016-09-23 01:58:51 +00:00 |
Kostya Serebryany
|
87a598e19f
|
[libFuzzer] simplify the TracePC logic
llvm-svn: 282222
|
2016-09-23 01:20:07 +00:00 |
Kostya Serebryany
|
ab73c6924f
|
[libFuzzer] move value profiling logic into TracePC
llvm-svn: 282219
|
2016-09-23 00:46:18 +00:00 |
Kostya Serebryany
|
d28099de5d
|
[libFuzzer] change ValueBitMap to remember the number of bits in it
llvm-svn: 282216
|
2016-09-23 00:22:46 +00:00 |
Kostya Serebryany
|
be0ed59cdc
|
[libFuzzer] simplify the crash minimizer; split MaxLen into two: MaxInputLen and MaxMutationLen, allow MaxMutationLen to be less than MaxInputLen
llvm-svn: 282211
|
2016-09-22 23:16:36 +00:00 |
Kostya Serebryany
|
624f59f4d8
|
[libFuzzer] add 'features' to the corpus elements, allow mutations with Size > MaxSize, fix sha1 in corpus stats; various refactorings
llvm-svn: 282129
|
2016-09-22 01:34:58 +00:00 |
Kostya Serebryany
|
c9e3de35ed
|
[libFuzzer] one more test
llvm-svn: 282127
|
2016-09-22 00:57:29 +00:00 |
Kostya Serebryany
|
29bb664075
|
[libFuzzer] add stats to the corpus; more refactoring
llvm-svn: 282121
|
2016-09-21 22:42:17 +00:00 |
Kostya Serebryany
|
20801e1b8a
|
[libFuzzer] more refactoring; don't compute sha1sum every time we mutate a unit from the corpus, use the stored one.
llvm-svn: 282115
|
2016-09-21 21:41:48 +00:00 |
Kostya Serebryany
|
8658618ea0
|
[libFuzzer] more refactoring
llvm-svn: 282113
|
2016-09-21 21:17:23 +00:00 |
Kostya Serebryany
|
225d8e45d4
|
[libFuzzer] fix libc++ build
llvm-svn: 282050
|
2016-09-21 03:50:37 +00:00 |
Kostya Serebryany
|
556894fb10
|
[libFuzzer] more refactoring; NFC
llvm-svn: 282047
|
2016-09-21 02:05:39 +00:00 |
Kostya Serebryany
|
6f5a804cdb
|
[libFuzzer] refactoring: split the large header into many; NFC
llvm-svn: 282044
|
2016-09-21 01:50:50 +00:00 |
Kostya Serebryany
|
09aa01a6f8
|
[libFuzzer] refactoring: move the Corpus into a separate class; delete two unused experimental features
llvm-svn: 282042
|
2016-09-21 01:04:43 +00:00 |
Kostya Serebryany
|
3750c04f7e
|
[libFuzzer] use sleep() instead of std::this_thread::sleep_for to avoid coverage from instrumented libc++
llvm-svn: 281933
|
2016-09-19 20:32:34 +00:00 |
Kostya Serebryany
|
b706b481ba
|
[libFuzzer] add -print_coverage=1 flag to print coverage directly from libFuzzer
llvm-svn: 281866
|
2016-09-18 21:47:08 +00:00 |
Kostya Serebryany
|
8e781a888a
|
[libFuzzer] use 'if guard' instead of 'if guard >= 0' with trace-pc; change the guard type to intptr_t; use separate array for 8-bit counters
llvm-svn: 281845
|
2016-09-18 04:52:23 +00:00 |
Kostya Serebryany
|
bc3789a919
|
[libFuzzer] properly reset the guards when reseting the coverage. Also try to fix check-fuzzer on the bot
llvm-svn: 281814
|
2016-09-17 06:01:55 +00:00 |
Kostya Serebryany
|
3e36ec1d18
|
[libFuzzer] change trace-pc to use 8-byte guards
llvm-svn: 281810
|
2016-09-17 05:04:47 +00:00 |
Kostya Serebryany
|
0984517021
|
[libFuzzer] make caller-callee feedback work with trace-pc-guard
llvm-svn: 281667
|
2016-09-15 22:16:15 +00:00 |
Kostya Serebryany
|
21c3573733
|
[libFuzzer] fix the build for AFLDriverTest
llvm-svn: 281633
|
2016-09-15 18:10:38 +00:00 |
Kostya Serebryany
|
09e416615e
|
[libFuzzer] disable test that requires debug info -- it fails on the bot
llvm-svn: 281584
|
2016-09-15 05:46:58 +00:00 |
Kostya Serebryany
|
0b47fbcb30
|
[libFuzzer] move the AFL driver build rule test into the uninstrumented dir
llvm-svn: 281583
|
2016-09-15 05:17:39 +00:00 |
Kostya Serebryany
|
33a497abf4
|
[libFuzzer] fix print_pcs test
llvm-svn: 281580
|
2016-09-15 04:43:06 +00:00 |
Kostya Serebryany
|
5350178487
|
[libFuzzer] implement print_pcs with trace-pc-guard. Change the trace-pc-guard heuristic for 8-bit counters to look more like in AFL (not that it's provable better, but the existin test preferes this heuristic)
llvm-svn: 281577
|
2016-09-15 04:36:45 +00:00 |
Kostya Serebryany
|
a5277d59d0
|
[libFuzzer] add 8-bit counters to trace-pc-guard handler
llvm-svn: 281568
|
2016-09-15 01:30:18 +00:00 |
Kostya Serebryany
|
a00b243c75
|
[libFuzzer] start using trace-pc-guard as an alternative source of coverage
llvm-svn: 281435
|
2016-09-14 02:13:06 +00:00 |
Kostya Serebryany
|
8c537c556a
|
[libFuzzer] print a failed-merge warning only in the merge mode
llvm-svn: 281130
|
2016-09-10 02:17:22 +00:00 |
Kostya Serebryany
|
4529960a3b
|
[libFuzzer] don't print help for internal flags
llvm-svn: 281124
|
2016-09-10 00:35:30 +00:00 |
Kostya Serebryany
|
b991cc1f0e
|
[libFuzzer] print a visible message if merge fails due to a crash
llvm-svn: 281122
|
2016-09-10 00:15:41 +00:00 |
Kostya Serebryany
|
1837152a34
|
[libFuzzer] use sizeof() in tests instead of 4 and 8
llvm-svn: 281111
|
2016-09-09 22:21:16 +00:00 |
Kostya Serebryany
|
4b17a331ae
|
[libFuzzer] one more puzzle for value profile
llvm-svn: 281106
|
2016-09-09 21:58:42 +00:00 |
Kostya Serebryany
|
00ef27112e
|
[libFuzzer] one more puzzle, value_profile cracks it in a second
llvm-svn: 281066
|
2016-09-09 18:00:04 +00:00 |
Kostya Serebryany
|
b76a2a5503
|
[libFuzzer] improve -print_pcs to not print new PCs coming from libFuzzer itself
llvm-svn: 281016
|
2016-09-09 02:38:28 +00:00 |
Kostya Serebryany
|
8ea4f9873b
|
[libFuzzer] remove unneeded call
llvm-svn: 281014
|
2016-09-09 01:57:38 +00:00 |
Kostya Serebryany
|
5c04bd250e
|
[libFuzzer] remove use_traces=1 since use_value_profile seems to be strictly better
llvm-svn: 281007
|
2016-09-09 01:17:03 +00:00 |
Kostya Serebryany
|
e2d0f63654
|
[libFuzzer] add -minimize_crash flag (to minimize crashers). also add two tests that I failed to commit last time
llvm-svn: 280332
|
2016-09-01 01:22:27 +00:00 |
Mike Aizatsky
|
b077d3fef2
|
[libfuzzer] simplified unit truncation; do not write trunc items to disc
Differential Revision: https://reviews.llvm.org/D24049
llvm-svn: 280153
|
2016-08-30 20:49:07 +00:00 |
Kostya Serebryany
|
a016a45d60
|
[libFuzzer] fix a bug when running a single unit of N bytes with -max_len=M, M<N, caused a buffer overflow
llvm-svn: 280098
|
2016-08-30 14:52:05 +00:00 |
Kostya Serebryany
|
248d11519a
|
[libFuzzer] stop using bits for memcmp's value profile -- seems to blow up the corpus too much
llvm-svn: 280096
|
2016-08-30 14:39:33 +00:00 |
Kostya Serebryany
|
d4492f8101
|
[libFuzzer] use bits instead of bytes for memcmp/strcmp value profile -- the fuzzer reaches the goal much faster, at least on the simple puzzles
llvm-svn: 280054
|
2016-08-30 03:05:50 +00:00 |
Kostya Serebryany
|
4d22e4fcb9
|
[libFuzzer] use trace-div and trace-gep for guided fuzzing, add tests
llvm-svn: 280046
|
2016-08-30 01:30:14 +00:00 |
Kostya Serebryany
|
3e5991e540
|
[libFuzzer] simplify a test to make it pass on the bot
llvm-svn: 279796
|
2016-08-26 00:18:16 +00:00 |
Kostya Serebryany
|
1426f59a76
|
[libFuzzer] make sure we have symbols on fuzzer tests
llvm-svn: 279792
|
2016-08-25 23:30:02 +00:00 |
Kostya Serebryany
|
0f0fa4faf2
|
[libFizzer] rename -print_new_cov_pcs=1 into -print_pcs=1 and make it more useful: print PCs only after the initial corpus has been read and symbolize them
llvm-svn: 279787
|
2016-08-25 22:35:08 +00:00 |
Kostya Serebryany
|
f67357c671
|
[libFuzzer] simplify the code, NFC
llvm-svn: 279697
|
2016-08-25 01:25:03 +00:00 |
Kostya Serebryany
|
41bcb830af
|
[libFuzzer] make a test more deterministic
llvm-svn: 279686
|
2016-08-24 23:10:17 +00:00 |