[llvm] r282127 - [libFuzzer] one more test

Kostya Serebryany via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 21 17:57:30 PDT 2016


Author: kcc
Date: Wed Sep 21 19:57:29 2016
New Revision: 282127

URL: http://llvm.org/viewvc/llvm-project?rev=282127&view=rev
Log:
[libFuzzer] one more test 

Added:
    llvm/trunk/lib/Fuzzer/test/MinimizeCorpusTest.cpp
Modified:
    llvm/trunk/lib/Fuzzer/test/CMakeLists.txt
    llvm/trunk/lib/Fuzzer/test/trace-pc/CMakeLists.txt

Modified: llvm/trunk/lib/Fuzzer/test/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/test/CMakeLists.txt?rev=282127&r1=282126&r2=282127&view=diff
==============================================================================
--- llvm/trunk/lib/Fuzzer/test/CMakeLists.txt (original)
+++ llvm/trunk/lib/Fuzzer/test/CMakeLists.txt Wed Sep 21 19:57:29 2016
@@ -80,6 +80,7 @@ set(Tests
   LeakTest
   LeakTimeoutTest
   LoadTest
+  MinimizeCorpusTest
   NullDerefTest
   NullDerefOnEmptyTest
   NthRunCrashTest

Added: llvm/trunk/lib/Fuzzer/test/MinimizeCorpusTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/test/MinimizeCorpusTest.cpp?rev=282127&view=auto
==============================================================================
--- llvm/trunk/lib/Fuzzer/test/MinimizeCorpusTest.cpp (added)
+++ llvm/trunk/lib/Fuzzer/test/MinimizeCorpusTest.cpp Wed Sep 21 19:57:29 2016
@@ -0,0 +1,28 @@
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+
+// Test that we can find the minimal item in the corpus (3 bytes: "FUZ").
+#include <cstdint>
+#include <cstdlib>
+#include <cstddef>
+#include <cstring>
+#include <cstdio>
+
+static volatile int Sink;
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
+  int8_t Ids[256];
+  memset(Ids, -1, sizeof(Ids));
+  for (size_t i = 0; i < Size; i++)
+    if (Ids[Data[i]] == -1)
+      Ids[Data[i]] = i;
+  int F = Ids[(unsigned char)'F'];
+  int U = Ids[(unsigned char)'U'];
+  int Z = Ids[(unsigned char)'Z'];
+  if (F >= 0 && U > F && Z > U) {
+    Sink++;
+    // printf("IDS: %d %d %d\n", F, U, Z);
+  }
+  return 0;
+}
+

Modified: llvm/trunk/lib/Fuzzer/test/trace-pc/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/test/trace-pc/CMakeLists.txt?rev=282127&r1=282126&r2=282127&view=diff
==============================================================================
--- llvm/trunk/lib/Fuzzer/test/trace-pc/CMakeLists.txt (original)
+++ llvm/trunk/lib/Fuzzer/test/trace-pc/CMakeLists.txt Wed Sep 21 19:57:29 2016
@@ -8,6 +8,7 @@ set(TracePCTests
   CounterTest
   CallerCalleeTest
   NullDerefTest
+  MinimizeCorpusTest
   )
 
 foreach(Test ${TracePCTests})




More information about the llvm-commits mailing list