Home | History | Annotate | Download | only in test
      1 // This file is distributed under the University of Illinois Open Source
      2 // License. See LICENSE.TXT for details.
      3 
      4 // Simple test for a fuzzer. The fuzzer must find a particular string.
      5 #include <cstring>
      6 #include <cstdint>
      7 #include <cstdio>
      8 #include <cstdlib>
      9 
     10 extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
     11   // TODO: check other sizes.
     12   if (Size >= 8 && memcmp(Data, "01234567", 8) == 0) {
     13     if (Size >= 12 && memcmp(Data + 8, "ABCD", 4) == 0) {
     14       if (Size >= 14 && memcmp(Data + 12, "XY", 2) == 0) {
     15         if (Size >= 17 && memcmp(Data + 14, "KLM", 3) == 0) {
     16           if (Size >= 27 && memcmp(Data + 17, "ABCDE-GHIJ", 10) == 0){
     17             fprintf(stderr, "BINGO %zd\n", Size);
     18             for (size_t i = 0; i < Size; i++) {
     19               uint8_t C = Data[i];
     20               if (C >= 32 && C < 127)
     21                 fprintf(stderr, "%c", C);
     22             }
     23             fprintf(stderr, "\n");
     24             exit(1);
     25           }
     26         }
     27       }
     28     }
     29   }
     30   return 0;
     31 }
     32