mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-20 14:29:27 +00:00
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
22 lines
435 B
C++
22 lines
435 B
C++
// Simple test for a fuzzer. The fuzzer must find the string "Hi!".
|
|
#include <cstdlib>
|
|
#include <cstddef>
|
|
#include <iostream>
|
|
|
|
static volatile int Sink;
|
|
|
|
extern "C" void TestOneInput(const uint8_t *Data, size_t Size) {
|
|
if (Size > 0 && Data[0] == 'H') {
|
|
Sink = 1;
|
|
if (Size > 1 && Data[1] == 'i') {
|
|
Sink = 2;
|
|
if (Size > 2 && Data[2] == '!') {
|
|
Size = 2;
|
|
while (Sink)
|
|
;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|