summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Fuzzer/FuzzerMain.cpp
Commit message (Collapse)AuthorAgeFilesLines
* [libFuzzer] Delete llvm/lib/FuzzerVitaly Buka2017-10-161-21/+0
| | | | | | | | | | | | Summary: Code is already in compiler-rt Reviewers: kcc Subscribers: krytarowski, llvm-commits, hiraditya Differential Revision: https://reviews.llvm.org/D38912 llvm-svn: 315937
* [libFuzzer] refactoring: split the large header into many; NFCKostya Serebryany2016-09-211-2/+1
| | | | llvm-svn: 282044
* [LibFuzzer] Reimplement how the optional user functions are called.Dan Liew2016-06-021-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | The motivation for this change is to fix linking issues on OSX. However this only partially fixes linking issues (the uninstrumented tests and a few others won't succesfully link yet). This change introduces a struct of function pointers (``fuzzer::ExternalFuntions``) which when initialised will point to the optional functions if they are available. Currently these ``LLVMFuzzerInitialize`` and ``LLVMFuzzerCustomMutator`` functions. Two implementations of ``fuzzer::ExternalFunctions`` constructor are provided one for Linux and one for OSX. The OSX implementation uses ``dlsym()`` because the prior implementation using weak symbols does not work unless the additional flags are passed to the linker. The Linux implementation continues to use weak symbols because the ``dlsym()`` approach does not work unless additional flags are passed to the linker. Differential Revision: http://reviews.llvm.org/D20741 llvm-svn: 271491
* [libFuzzer] introduce LLVMFuzzerInitializeKostya Serebryany2016-01-161-1/+7
| | | | llvm-svn: 257980
* [libFuzzer] make LLVMFuzzerTestOneInput (the fuzzer target function) return ↵Kostya Serebryany2015-10-021-1/+1
| | | | | | 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
* [lib/Fuzzer] rename TestOneInput to LLVMFuzzerTestOneInput to make it more ↵Kostya Serebryany2015-05-061-2/+2
| | | | | | unique llvm-svn: 236652
* [fuzzer] split main() into FuzzerDriver() that takes a callback as a ↵Kostya Serebryany2015-02-191-177/+4
| | | | | | parameter and a tiny main() in a separate file llvm-svn: 229882
* [fuzzer] move default sanitizer options to a separate fileKostya Serebryany2015-02-061-7/+0
| | | | llvm-svn: 228429
* [fuzzer] add flag prefer_small_during_initial_shuffle, be a bit more verboseKostya Serebryany2015-02-041-1/+5
| | | | llvm-svn: 228235
* [fuzzer] add -runs=N to limit the number of runs per session. Also, make ↵Kostya Serebryany2015-02-041-1/+2
| | | | | | 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-6/+17
| | | | | | respect mutation depth and to never produce empty units llvm-svn: 228170
* [fuzzer]: fix exit code, add more diagnosticsKostya Serebryany2015-02-041-1/+1
| | | | llvm-svn: 228103
* [fuzzer] add flags to run fuzzer in multiple parallel processesKostya Serebryany2015-01-311-0/+35
| | | | llvm-svn: 227664
* [fuzzer] add -use_full_coverage_set=1 which solves FullCoverageSetTest. This ↵Kostya Serebryany2015-01-291-0/+1
| | | | | | does not scale very well yet, but might be a good start. llvm-svn: 227507
* Reverting r227452, which adds back the fuzzer library. Now excluding the ↵Aaron Ballman2015-01-291-0/+148
| | | | | | 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 Ballman2015-01-291-148/+0
| | | | | | for MSVC users. This reverts: 227445, 227395, 227389, 227357, 227254, 227252 llvm-svn: 227452
* [fuzzer] add option -save_minimized_corpusKostya Serebryany2015-01-281-0/+2
| | | | llvm-svn: 227395
* [fuzzer] properly enable asan's coverage feedbackKostya Serebryany2015-01-271-1/+4
| | | | llvm-svn: 227254
* Add a Fuzzer libraryKostya Serebryany2015-01-271-0/+143
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
OpenPOWER on IntegriCloud