summaryrefslogtreecommitdiff
path: root/test/lsan
diff options
context:
space:
mode:
authorMaxim Ostapenko <chefmax7@gmail.com>2018-01-22 09:30:27 +0000
committerMaxim Ostapenko <chefmax7@gmail.com>2018-01-22 09:30:27 +0000
commiteed59a7be2e79f30d91d9353859493ef8107b429 (patch)
tree11fc33defda2a5d0c0e78f56f32d915de98b16fa /test/lsan
parent2bcda34aa2ffdc53cf7521e41b37b78a77a5ea02 (diff)
[lsan] Respect log_path option in standalone LSan
Differential Revision: https://reviews.llvm.org/D42303 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@323083 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/lsan')
-rw-r--r--test/lsan/TestCases/Linux/log-path_test.cc26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/lsan/TestCases/Linux/log-path_test.cc b/test/lsan/TestCases/Linux/log-path_test.cc
new file mode 100644
index 000000000..a31b4f64a
--- /dev/null
+++ b/test/lsan/TestCases/Linux/log-path_test.cc
@@ -0,0 +1,26 @@
+// RUN: %clangxx_lsan %s -o %t
+// The globs below do not work in the lit shell.
+
+// Regular run.
+// RUN: %env_lsan_opts="use_stacks=0" not %run %t > %t.out 2>&1
+// RUN: FileCheck %s --check-prefix=CHECK-ERROR < %t.out
+
+// Good log_path.
+// RUN: rm -f %t.log.*
+// RUN: %env_lsan_opts="use_stacks=0:log_path='"%t.log"'" not %run %t > %t.out 2>&1
+// RUN: FileCheck %s --check-prefix=CHECK-ERROR < %t.log.*
+
+#include <stdio.h>
+#include <stdlib.h>
+#include "sanitizer_common/print_address.h"
+
+int main() {
+ void *stack_var = malloc(1337);
+ print_address("Test alloc: ", 1, stack_var);
+ // Do not return from main to prevent the pointer from going out of scope.
+ exit(0);
+}
+
+// CHECK-ERROR: LeakSanitizer: detected memory leaks
+// CHECK-ERROR: Direct leak of 1337 byte(s) in 1 object(s) allocated from
+// CHECK-ERROR: SUMMARY: {{(Leak|Address)}}Sanitizer: