[libFuzzer] don't write the test unit when a leak is detected (since we don't know which unit causes the leak)

llvm-svn: 259731
diff --git a/llvm/lib/Fuzzer/test/CMakeLists.txt b/llvm/lib/Fuzzer/test/CMakeLists.txt
index 3533d3b..c9ccf9b 100644
--- a/llvm/lib/Fuzzer/test/CMakeLists.txt
+++ b/llvm/lib/Fuzzer/test/CMakeLists.txt
@@ -20,6 +20,7 @@
   FullCoverageSetTest
   InitializeTest
   MemcmpTest
+  LeakTest
   NullDerefTest
   RepeatedMemcmp
   SimpleCmpTest
diff --git a/llvm/lib/Fuzzer/test/LeakTest.cpp b/llvm/lib/Fuzzer/test/LeakTest.cpp
new file mode 100644
index 0000000..7d153e4
--- /dev/null
+++ b/llvm/lib/Fuzzer/test/LeakTest.cpp
@@ -0,0 +1,11 @@
+// Test with a leak.
+#include <cstdint>
+#include <cstddef>
+
+static volatile void *Sink;
+
+extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
+  Sink = new int;
+  return 0;
+}
+
diff --git a/llvm/lib/Fuzzer/test/fuzzer.test b/llvm/lib/Fuzzer/test/fuzzer.test
index 3a61778..d826fd7 100644
--- a/llvm/lib/Fuzzer/test/fuzzer.test
+++ b/llvm/lib/Fuzzer/test/fuzzer.test
@@ -57,3 +57,6 @@
 SINGLE_INPUTS: aaa:
 SINGLE_INPUTS: bbb:
 
+RUN: LLVMFuzzer-LeakTest -runs=10 2>&1 | FileCheck %s --check-prefix=LEAK
+LEAK: ERROR: LeakSanitizer: detected memory leaks
+LEAK-NOT: DEATH: