[NFC][Asan] Add another lsan test
authorVitaly Buka <vitalybuka@google.com>
Fri, 11 Sep 2020 21:22:54 +0000 (14:22 -0700)
committerVitaly Buka <vitalybuka@google.com>
Fri, 11 Sep 2020 23:40:18 +0000 (16:40 -0700)
compiler-rt/test/asan/TestCases/leaks.cpp [new file with mode: 0644]

diff --git a/compiler-rt/test/asan/TestCases/leaks.cpp b/compiler-rt/test/asan/TestCases/leaks.cpp
new file mode 100644 (file)
index 0000000..9c076dd
--- /dev/null
@@ -0,0 +1,29 @@
+// Test for LeakSanitizer+AddressSanitizer of different sizes.
+// REQUIRES: leak-detection
+//
+// RUN: %clangxx_asan -O0 %s -o %t
+// RUN: not %run %t 0 2>&1 | FileCheck %s
+// RUN: not %run %t 1 2>&1 | FileCheck %s
+// RUN: not %run %t 1000 2>&1 | FileCheck %s
+// RUN: not %run %t 1000000 2>&1 | FileCheck %s
+// RUN: not %run %t 10000000 2>&1 | FileCheck %s
+
+#include <cstdlib>
+#include <stdio.h>
+#include <thread>
+int *t;
+
+__attribute__((noopt)) void leak(int n) {
+  // Repeat few times to make sure that at least one pointer is
+  // not somewhere on the stack.
+  for (int i = 0; i < 10; ++i) {
+    t = new int[n];
+    printf("t: %p\n", t);
+    t = 0;
+  }
+}
+
+int main(int argc, char **argv) {
+  leak(atoi(argv[1]));
+}
+// CHECK: LeakSanitizer: detected memory leaks