summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Fuzzer/FuzzerLoop.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* [libFuzzer] use the indirect caller-callee counter as an independent search ↵Kostya Serebryany2015-10-221-1/+14
| | | | | | heuristic llvm-svn: 251078
* [libFuzzer] more refactoring the code that checks the coverage. NFCKostya Serebryany2015-10-221-7/+8
| | | | llvm-svn: 251075
* [libFuzzer] refactoring the code that checks the coverage. NFCKostya Serebryany2015-10-221-29/+35
| | | | llvm-svn: 251074
* [libFuzzer] remove the deprecated 'tokens' featureKostya Serebryany2015-10-221-32/+7
| | | | llvm-svn: 251069
* [libFuzzer] add -shuffle flagKostya Serebryany2015-10-171-5/+7
| | | | llvm-svn: 250603
* [libFuzzer] print a stack trace on timeoutKostya Serebryany2015-10-161-0/+9
| | | | llvm-svn: 250571
* [libFuzzer] reduce the size of artifacts printed on the screenKostya Serebryany2015-10-161-1/+1
| | | | llvm-svn: 250565
* [libFuzzer] When -test_single_input crashes the test it is not necessary to ↵Kostya Serebryany2015-10-161-0/+2
| | | | | | write crash-file because input is already known to the user. Patch by Mike Aizatsky llvm-svn: 250564
* [libFuzzer] don't print large artifacts to stderrKostya Serebryany2015-10-091-6/+7
| | | | llvm-svn: 249808
* [libFuzzer] add -artifact_prefix flagKostya Serebryany2015-10-091-2/+3
| | | | llvm-svn: 249807
* [libFuzzer] make LLVMFuzzerTestOneInput (the fuzzer target function) return ↵Kostya Serebryany2015-10-021-2/+4
| | | | | | int instead of void. The actual return value is not *yet* used (and expected to be 0). This change is API breaking, so the fuzzers will need to be updated. llvm-svn: 249214
* [libFuzzer] remove experimental flag and functionalityKostya Serebryany2015-10-021-29/+1
| | | | llvm-svn: 249194
* [libFuzzer] add a flag -max_total_timeKostya Serebryany2015-10-021-0/+4
| | | | llvm-svn: 249181
* [libFuzzer] perform fewer crossover operations compared to plain mutationsKostya Serebryany2015-09-111-7/+8
| | | | llvm-svn: 247364
* [libFuzzer] remove -iterations as redundant (there is also -num_runs)Kostya Serebryany2015-09-081-2/+2
| | | | llvm-svn: 247030
* [libFuzzer] actually make the dictionaries work (+docs)Kostya Serebryany2015-09-041-0/+3
| | | | llvm-svn: 246825
* [libFuzzer] honour -only_ascii=1 when reading the initial corpus. Also, ↵Kostya Serebryany2015-09-021-5/+3
| | | | | | remove ugly #ifdef llvm-svn: 246689
* [libFuzzer] add two flags, -tbm_depth and -tbm_width to control how the ↵Kostya Serebryany2015-08-121-6/+17
| | | | | | trace-based-mutations are applied llvm-svn: 244712
* [libFuzzer] add colons to the stats output to avoid confusionKostya Serebryany2015-08-121-2/+3
| | | | llvm-svn: 244708
* Fix unused variable 'X' in release builds.Nick Lewycky2015-08-111-0/+2
| | | | llvm-svn: 244571
* [libFuzzer] add -only_ascii flagKostya Serebryany2015-08-111-1/+6
| | | | llvm-svn: 244559
* [libFuzzer] add option -report_slow_units=Nsec to control when slow units ↵Kostya Serebryany2015-08-051-3/+4
| | | | | | are printed llvm-svn: 244152
* [libFuzzer] limit the size of the inputs printed to stderrKostya Serebryany2015-07-311-4/+10
| | | | llvm-svn: 243795
* [libFuzzer] allow users to supply their own implementation of randKostya Serebryany2015-07-241-4/+4
| | | | llvm-svn: 243078
* [libFuzzer] dump long running units to disk Kostya Serebryany2015-07-231-4/+5
| | | | llvm-svn: 243031
* [lib/Fuzzer] make assertions more informative and update comments for the ↵Kostya Serebryany2015-05-301-2/+6
| | | | | | user-supplied mutator llvm-svn: 238658
* [lib/Fuzzer] make the fuzzing timeout 1200 seconds by default (was: infinity)Kostya Serebryany2015-05-261-0/+2
| | | | llvm-svn: 238251
* [lib/Fuzzer] fix build with assertionsKostya Serebryany2015-05-261-3/+3
| | | | llvm-svn: 238235
* [lib/Fuzzer] fully get rid of std::cerr in libFuzzerKostya Serebryany2015-05-231-30/+17
| | | | llvm-svn: 238081
* [lib/Fuzzer] remove -use_coverage_pairs=1, an experimental feature that is ↵Kostya Serebryany2015-05-221-24/+0
| | | | | | unlikely to ever scale llvm-svn: 238063
* [lib/Fuzzer] extend the fuzzer interface to allow user-supplied mutatorsKostya Serebryany2015-05-221-7/+15
| | | | llvm-svn: 238059
* [lib/Fuzzer] change the meaning of -timeout flag: now timeout is applied to ↵Kostya Serebryany2015-05-191-4/+10
| | | | | | every unit of work separately llvm-svn: 237735
* [lib/Fuzzer] more efficient reload logic; also don't spam git too muchKostya Serebryany2015-05-191-5/+9
| | | | llvm-svn: 237649
* [lib/Fuzzer] when -sync_command=<CMD> is given, periodically execute 'CMD ↵Kostya Serebryany2015-05-181-0/+11
| | | | | | CORPUS' to synchronize with other processes llvm-svn: 237617
* Code cleanup: Reindent Fuzzer::MutateAndTestOne.Logan Chien2015-05-171-2/+2
| | | | llvm-svn: 237533
* [lib/Fuzzer] rename FuzzerDFSan.cpp to FuzzerTraceState.cpp; update ↵Kostya Serebryany2015-05-111-1/+1
| | | | | | comments. NFC expected llvm-svn: 237050
* [lib/Fuzzer] use -fsanitize-coverage=trace-cmp when building LLVM with ↵Kostya Serebryany2015-05-081-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 Serebryany2015-05-071-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, NFCKostya Serebryany2015-05-071-29/+30
| | | | llvm-svn: 236757
* [lib/Fuzzer] on crash print the contents of the crashy input as base64Kostya Serebryany2015-05-051-0/+2
| | | | llvm-svn: 236548
* [fuzzer] Add support for token-based fuzzing (e.g. for C++). Allow string ↵Kostya Serebryany2015-03-311-11/+61
| | | | | | flags. llvm-svn: 233745
* [fuzzer] when a single unit takes over 1 second to run and it is the slowest ↵Kostya Serebryany2015-03-301-4/+16
| | | | | | one so far, print it. llvm-svn: 233637
* [fuzzer] print various stats in a unified wayKostya Serebryany2015-03-301-21/+24
| | | | llvm-svn: 233624
* DFSan-based fuzzer (proof of concept).Kostya Serebryany2015-03-301-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 Serebryany2015-03-031-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 Serebryany2015-02-201-0/+25
| | | | llvm-svn: 229957
* [fuzzer] split main() into FuzzerDriver() that takes a callback as a ↵Kostya Serebryany2015-02-191-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 verboseKostya Serebryany2015-02-041-5/+15
| | | | llvm-svn: 228235
* [fuzzer] add -runs=N to limit the number of runs per session. Also, make ↵Kostya Serebryany2015-02-041-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 Serebryany2015-02-041-2/+2
| | | | | | respect mutation depth and to never produce empty units llvm-svn: 228170
OpenPOWER on IntegriCloud