Add a Fuzzer library
authorKostya Serebryany <kcc@google.com>
Tue, 27 Jan 2015 22:08:41 +0000 (22:08 +0000)
committerKostya Serebryany <kcc@google.com>
Tue, 27 Jan 2015 22:08:41 +0000 (22:08 +0000)
commitc9baf3befbdbfd43da91d99929cebe4f2266b32d
treef4630e2020482eac060cac77a85a25a28b5ddba3
parent37be0d7c434bc5f44ec01f6f1ad2152721b66fbc
Add a Fuzzer library

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227252 91177308-0d34-0410-b5e6-96231b3b80d8
17 files changed:
lib/CMakeLists.txt
lib/Fuzzer/CMakeLists.txt [new file with mode: 0644]
lib/Fuzzer/FuzzerCrossOver.cpp [new file with mode: 0644]
lib/Fuzzer/FuzzerFlags.def [new file with mode: 0644]
lib/Fuzzer/FuzzerIO.cpp [new file with mode: 0644]
lib/Fuzzer/FuzzerInternal.h [new file with mode: 0644]
lib/Fuzzer/FuzzerLoop.cpp [new file with mode: 0644]
lib/Fuzzer/FuzzerMain.cpp [new file with mode: 0644]
lib/Fuzzer/FuzzerMutate.cpp [new file with mode: 0644]
lib/Fuzzer/FuzzerUtil.cpp [new file with mode: 0644]
lib/Fuzzer/README.txt [new file with mode: 0644]
lib/Fuzzer/test/ExactTest.cpp [new file with mode: 0644]
lib/Fuzzer/test/InfiniteTest.cpp [new file with mode: 0644]
lib/Fuzzer/test/NullDerefTest.cpp [new file with mode: 0644]
lib/Fuzzer/test/SimpleTest.cpp [new file with mode: 0644]
lib/Fuzzer/test/TestFuzzerCrossOver.cpp [new file with mode: 0644]
lib/Fuzzer/test/TimeoutTest.cpp [new file with mode: 0644]