1*9880d681SAndroid Build Coastguard Worker // This file is distributed under the University of Illinois Open Source 2*9880d681SAndroid Build Coastguard Worker // License. See LICENSE.TXT for details. 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker // Simple test for a fuzzer. The fuzzer must find the string "Hi!". 5*9880d681SAndroid Build Coastguard Worker #include <assert.h> 6*9880d681SAndroid Build Coastguard Worker #include <cstdint> 7*9880d681SAndroid Build Coastguard Worker #include <cstdlib> 8*9880d681SAndroid Build Coastguard Worker #include <cstddef> 9*9880d681SAndroid Build Coastguard Worker #include <iostream> 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard Worker static volatile int Sink; 12*9880d681SAndroid Build Coastguard Worker LLVMFuzzerTestOneInput(const uint8_t * Data,size_t Size)13*9880d681SAndroid Build Coastguard Workerextern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { 14*9880d681SAndroid Build Coastguard Worker assert(Data); 15*9880d681SAndroid Build Coastguard Worker if (Size > 0 && Data[0] == 'H') { 16*9880d681SAndroid Build Coastguard Worker Sink = 1; 17*9880d681SAndroid Build Coastguard Worker if (Size > 1 && Data[1] == 'i') { 18*9880d681SAndroid Build Coastguard Worker Sink = 2; 19*9880d681SAndroid Build Coastguard Worker if (Size > 2 && Data[2] == '!') { 20*9880d681SAndroid Build Coastguard Worker std::cout << "BINGO; Found the target, exiting\n"; 21*9880d681SAndroid Build Coastguard Worker exit(0); 22*9880d681SAndroid Build Coastguard Worker } 23*9880d681SAndroid Build Coastguard Worker } 24*9880d681SAndroid Build Coastguard Worker } 25*9880d681SAndroid Build Coastguard Worker return 0; 26*9880d681SAndroid Build Coastguard Worker } 27*9880d681SAndroid Build Coastguard Worker 28