Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | [libFuzzer] add option -report_slow_units=Nsec to control when slow units ↵ | Kostya Serebryany | 2015-08-05 | 1 | -3/+4 |
| | | | | | | are printed llvm-svn: 244152 | ||||
* | [libFuzzer] limit the size of the inputs printed to stderr | Kostya Serebryany | 2015-07-31 | 1 | -4/+10 |
| | | | | llvm-svn: 243795 | ||||
* | [libFuzzer] allow users to supply their own implementation of rand | Kostya Serebryany | 2015-07-24 | 1 | -4/+4 |
| | | | | llvm-svn: 243078 | ||||
* | [libFuzzer] dump long running units to disk | Kostya Serebryany | 2015-07-23 | 1 | -4/+5 |
| | | | | llvm-svn: 243031 | ||||
* | [lib/Fuzzer] make assertions more informative and update comments for the ↵ | Kostya Serebryany | 2015-05-30 | 1 | -2/+6 |
| | | | | | | user-supplied mutator llvm-svn: 238658 | ||||
* | [lib/Fuzzer] make the fuzzing timeout 1200 seconds by default (was: infinity) | Kostya Serebryany | 2015-05-26 | 1 | -0/+2 |
| | | | | llvm-svn: 238251 | ||||
* | [lib/Fuzzer] fix build with assertions | Kostya Serebryany | 2015-05-26 | 1 | -3/+3 |
| | | | | llvm-svn: 238235 | ||||
* | [lib/Fuzzer] fully get rid of std::cerr in libFuzzer | Kostya Serebryany | 2015-05-23 | 1 | -30/+17 |
| | | | | llvm-svn: 238081 | ||||
* | [lib/Fuzzer] remove -use_coverage_pairs=1, an experimental feature that is ↵ | Kostya Serebryany | 2015-05-22 | 1 | -24/+0 |
| | | | | | | unlikely to ever scale llvm-svn: 238063 | ||||
* | [lib/Fuzzer] extend the fuzzer interface to allow user-supplied mutators | Kostya Serebryany | 2015-05-22 | 1 | -7/+15 |
| | | | | llvm-svn: 238059 | ||||
* | [lib/Fuzzer] change the meaning of -timeout flag: now timeout is applied to ↵ | Kostya Serebryany | 2015-05-19 | 1 | -4/+10 |
| | | | | | | every unit of work separately llvm-svn: 237735 | ||||
* | [lib/Fuzzer] more efficient reload logic; also don't spam git too much | Kostya Serebryany | 2015-05-19 | 1 | -5/+9 |
| | | | | llvm-svn: 237649 | ||||
* | [lib/Fuzzer] when -sync_command=<CMD> is given, periodically execute 'CMD ↵ | Kostya Serebryany | 2015-05-18 | 1 | -0/+11 |
| | | | | | | CORPUS' to synchronize with other processes llvm-svn: 237617 | ||||
* | Code cleanup: Reindent Fuzzer::MutateAndTestOne. | Logan Chien | 2015-05-17 | 1 | -2/+2 |
| | | | | llvm-svn: 237533 | ||||
* | [lib/Fuzzer] rename FuzzerDFSan.cpp to FuzzerTraceState.cpp; update ↵ | Kostya Serebryany | 2015-05-11 | 1 | -1/+1 |
| | | | | | | comments. NFC expected llvm-svn: 237050 | ||||
* | [lib/Fuzzer] use -fsanitize-coverage=trace-cmp when building LLVM with ↵ | Kostya Serebryany | 2015-05-08 | 1 | -0/+26 |
| | | | | | | LLVM_USE_SANITIZE_COVERAGE; in lib/Fuzzer try to reload the corpus to pick up new units from other processes llvm-svn: 236906 | ||||
* | [lib/Fuzzer] change the way we use taint information for fuzzing. Now, we ↵ | Kostya Serebryany | 2015-05-07 | 1 | -1/+6 |
| | | | | | | run a single unit and collect suggested mutations based on tracing+taint data, then apply the suggested mutations one by one. The previous scheme was slower and more complex. llvm-svn: 236772 | ||||
* | [lib/Fuzzer] minor refactoring/simplification, NFC | Kostya Serebryany | 2015-05-07 | 1 | -29/+30 |
| | | | | llvm-svn: 236757 | ||||
* | [lib/Fuzzer] on crash print the contents of the crashy input as base64 | Kostya Serebryany | 2015-05-05 | 1 | -0/+2 |
| | | | | llvm-svn: 236548 | ||||
* | [fuzzer] Add support for token-based fuzzing (e.g. for C++). Allow string ↵ | Kostya Serebryany | 2015-03-31 | 1 | -11/+61 |
| | | | | | | flags. llvm-svn: 233745 | ||||
* | [fuzzer] when a single unit takes over 1 second to run and it is the slowest ↵ | Kostya Serebryany | 2015-03-30 | 1 | -4/+16 |
| | | | | | | one so far, print it. llvm-svn: 233637 | ||||
* | [fuzzer] print various stats in a unified way | Kostya Serebryany | 2015-03-30 | 1 | -21/+24 |
| | | | | llvm-svn: 233624 | ||||
* | DFSan-based fuzzer (proof of concept). | Kostya Serebryany | 2015-03-30 | 1 | -0/+1 |
| | | | | | | | | | | | | | | | | | | Summary: This adds a simple DFSan-based (i.e. taint-guided) fuzzer mutator, see the comments for details. Test Plan: a test added Reviewers: samsonov, pcc Reviewed By: samsonov, pcc Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8669 llvm-svn: 233613 | ||||
* | [sanitizer/coverage] Add AFL-style coverage counters (search heuristic for ↵ | Kostya Serebryany | 2015-03-03 | 1 | -1/+13 |
| | | | | | | | | | | | | | | | | | | | | | | | | | fuzzing). Introduce -mllvm -sanitizer-coverage-8bit-counters=1 which adds imprecise thread-unfriendly 8-bit coverage counters. The run-time library maps these 8-bit counters to 8-bit bitsets in the same way AFL (http://lcamtuf.coredump.cx/afl/technical_details.txt) does: counter values are divided into 8 ranges and based on the counter value one of the bits in the bitset is set. The AFL ranges are used here: 1, 2, 3, 4-7, 8-15, 16-31, 32-127, 128+. These counters provide a search heuristic for single-threaded coverage-guided fuzzers, we do not expect them to be useful for other purposes. Depending on the value of -fsanitize-coverage=[123] flag, these counters will be added to the function entry blocks (=1), every basic block (=2), or every edge (=3). Use these counters as an optional search heuristic in the Fuzzer library. Add a test where this heuristic is critical. llvm-svn: 231166 | ||||
* | [fuzzer] one more experimental search mode: -use_coverage_pairs=1 | Kostya Serebryany | 2015-02-20 | 1 | -0/+25 |
| | | | | llvm-svn: 229957 | ||||
* | [fuzzer] split main() into FuzzerDriver() that takes a callback as a ↵ | Kostya Serebryany | 2015-02-19 | 1 | -5/+2 |
| | | | | | | parameter and a tiny main() in a separate file llvm-svn: 229882 | ||||
* | [fuzzer] add flag prefer_small_during_initial_shuffle, be a bit more verbose | Kostya Serebryany | 2015-02-04 | 1 | -5/+15 |
| | | | | llvm-svn: 228235 | ||||
* | [fuzzer] add -runs=N to limit the number of runs per session. Also, make ↵ | Kostya Serebryany | 2015-02-04 | 1 | -7/+10 |
| | | | | | | sure we do some mutations w/o cross over. llvm-svn: 228214 | ||||
* | [fuzzer] make multi-process execution more verbose; fix mutation to actually ↵ | Kostya Serebryany | 2015-02-04 | 1 | -2/+2 |
| | | | | | | respect mutation depth and to never produce empty units llvm-svn: 228170 | ||||
* | [fuzzer]: fix exit code, add more diagnostics | Kostya Serebryany | 2015-02-04 | 1 | -0/+1 |
| | | | | llvm-svn: 228103 | ||||
* | [fuzzer] update the include line to use the new header name | Kostya Serebryany | 2015-02-03 | 1 | -1/+1 |
| | | | | llvm-svn: 228018 | ||||
* | [fuzzer] add -use_full_coverage_set=1 which solves FullCoverageSetTest. This ↵ | Kostya Serebryany | 2015-01-29 | 1 | -0/+29 |
| | | | | | | does not scale very well yet, but might be a good start. llvm-svn: 227507 | ||||
* | [fuzzer] minor cleanup based on reviews: remove redundant includes, fix a ↵ | Kostya Serebryany | 2015-01-29 | 1 | -2/+0 |
| | | | | | | copy-pasto in tests llvm-svn: 227468 | ||||
* | Reverting r227452, which adds back the fuzzer library. Now excluding the ↵ | Aaron Ballman | 2015-01-29 | 1 | -0/+170 |
| | | | | | | fuzzer library based on LLVM_USE_SANITIZE_COVERAGE being set or unset. llvm-svn: 227464 | ||||
* | Temporarily reverting the fuzzer library as it causes too many build issues ↵ | Aaron Ballman | 2015-01-29 | 1 | -170/+0 |
| | | | | | | for MSVC users. This reverts: 227445, 227395, 227389, 227357, 227254, 227252 llvm-svn: 227452 | ||||
* | [fuzzer] add option -save_minimized_corpus | Kostya Serebryany | 2015-01-28 | 1 | -1/+10 |
| | | | | llvm-svn: 227395 | ||||
* | Add lit-style tests for the Fuzzer library | Kostya Serebryany | 2015-01-28 | 1 | -2/+2 |
| | | | | | | | | | | | | | | | | Summary: Add test targets and the lit-style runner. Test Plan: Run the tests on bot. Reviewers: samsonov Reviewed By: samsonov Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D7217 llvm-svn: 227389 | ||||
* | Add a Fuzzer library | Kostya Serebryany | 2015-01-27 | 1 | -0/+161 |
Summary: A simple genetic in-process coverage-guided fuzz testing library. I've used this fuzzer to test clang-format (it found 12+ bugs, thanks djasper@ for the fixes!) and it may also help us test other parts of LLVM. So why not keep it in the LLVM repository? I plan to add the cmake build rules later (in a separate patch, if that's ok) and also add a clang-format-fuzzer target. See README.txt for details. Test Plan: Tests will follow separately. Reviewers: djasper, chandlerc, rnk Reviewed By: rnk Subscribers: majnemer, ygribov, dblaikie, llvm-commits Differential Revision: http://reviews.llvm.org/D7184 llvm-svn: 227252 |