forked from OSchip/llvm-project
make detect_leaks=1 the default for the lsan test suite
Summary: This already appears to be the case in all .cc test files, it was probably left out of the .c test files accidentally. Make it a global default, instead of manually adding it to each individual test. This is needed to force leak detection for Darwin tests, where leak detection is disabled by default. Reviewers: m.ostapenko, kubamracek, alekseyshl Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D32297 llvm-svn: 300890
This commit is contained in:
parent
f50f97c9dd
commit
6b494d9edc
|
@ -1,5 +1,5 @@
|
|||
// Test that dynamically allocated TLS space is included in the root set.
|
||||
// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0:use_registers=0:use_ld_allocations=0"
|
||||
// RUN: LSAN_BASE="report_objects=1:use_stacks=0:use_registers=0:use_ld_allocations=0"
|
||||
// RUN: %clangxx %s -DBUILD_DSO -fPIC -shared -o %t-so.so
|
||||
// RUN: %clangxx_lsan %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"use_tls=0" not %run %t 2>&1 | FileCheck %s
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Test that dynamically allocated thread-specific storage is included in the root set.
|
||||
// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0:use_registers=0"
|
||||
// RUN: LSAN_BASE="report_objects=1:use_stacks=0:use_registers=0"
|
||||
// RUN: %clangxx_lsan %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"use_tls=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"use_tls=1" %run %t 2>&1
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Test that statically allocated thread-specific storage is included in the root set.
|
||||
// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0:use_registers=0"
|
||||
// RUN: LSAN_BASE="report_objects=1:use_stacks=0:use_registers=0"
|
||||
// RUN: %clangxx_lsan %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"use_tls=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"use_tls=1" %run %t 2>&1
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Test that statically allocated TLS space is included in the root set.
|
||||
// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0:use_registers=0"
|
||||
// RUN: LSAN_BASE="report_objects=1:use_stacks=0:use_registers=0"
|
||||
// RUN: %clangxx_lsan %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"use_tls=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"use_tls=1" %run %t 2>&1
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Test for ScopedDisabler.
|
||||
// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_registers=0:use_stacks=0:use_globals=0:use_tls=0"
|
||||
// RUN: LSAN_BASE="report_objects=1:use_registers=0:use_stacks=0:use_globals=0:use_tls=0"
|
||||
// RUN: %clangxx_lsan %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE not %run %t 2>&1 | FileCheck %s
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// Test for __lsan_do_leak_check(). We test it by making the leak check run
|
||||
// before global destructors, which also tests compatibility with HeapChecker's
|
||||
// "normal" mode (LSan runs in "strict" mode by default).
|
||||
// RUN: LSAN_BASE="detect_leaks=1:use_stacks=0:use_registers=0"
|
||||
// RUN: LSAN_BASE="use_stacks=0:use_registers=0"
|
||||
// RUN: %clangxx_lsan %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE not %run %t 2>&1 | FileCheck --check-prefix=CHECK-strict %s
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE not %run %t foo 2>&1 | FileCheck --check-prefix=CHECK-normal %s
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// A benchmark that executes malloc/free pairs in parallel.
|
||||
// Usage: ./a.out number_of_threads total_number_of_allocations
|
||||
// RUN: LSAN_BASE="detect_leaks=1:use_ld_allocations=0"
|
||||
// RUN: LSAN_BASE="use_ld_allocations=0"
|
||||
// RUN: %clangxx_lsan %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE %run %t 5 1000000 2>&1
|
||||
#include <assert.h>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Test that LargeMmapAllocator's chunks aren't reachable via some internal data structure.
|
||||
// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0:use_registers=0"
|
||||
// RUN: LSAN_BASE="report_objects=1:use_stacks=0:use_registers=0"
|
||||
// RUN: %clangxx_lsan %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE not %run %t 2>&1 | FileCheck %s
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Test for the leak_check_at_exit flag.
|
||||
// RUN: LSAN_BASE="detect_leaks=1:use_stacks=0:use_registers=0"
|
||||
// RUN: LSAN_BASE="use_stacks=0:use_registers=0"
|
||||
// RUN: %clangxx_lsan %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE not %run %t foo 2>&1 | FileCheck %s --check-prefix=CHECK-do
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-do
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Test for disabling LSan at link-time.
|
||||
// RUN: LSAN_BASE="detect_leaks=1:use_stacks=0:use_registers=0"
|
||||
// RUN: LSAN_BASE="use_stacks=0:use_registers=0"
|
||||
// RUN: %clangxx_lsan %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE %run %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE not %run %t foo 2>&1 | FileCheck %s
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Regression test: pointers to self should not confuse LSan into thinking the
|
||||
// object is indirectly leaked. Only external pointers count.
|
||||
// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_registers=0"
|
||||
// RUN: LSAN_BASE="report_objects=1:use_registers=0"
|
||||
// RUN: %clangxx_lsan %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"use_stacks=0" not %run %t 2>&1 | FileCheck %s
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Print matched suppressions only if print_suppressions=1 AND at least one is
|
||||
// matched. Default is print_suppressions=true.
|
||||
// RUN: LSAN_BASE="detect_leaks=1:use_registers=0:use_stacks=0"
|
||||
// RUN: LSAN_BASE="use_registers=0:use_stacks=0"
|
||||
// RUN: %clangxx_lsan %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:print_suppressions=0 %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-dont-print
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-dont-print
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Test for on-demand leak checking.
|
||||
// RUN: LSAN_BASE="detect_leaks=1:use_stacks=0:use_registers=0"
|
||||
// RUN: LSAN_BASE="use_stacks=0:use_registers=0"
|
||||
// RUN: %clangxx_lsan %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE %run %t foo 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE %run %t 2>&1 | FileCheck %s
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Test for __lsan_(un)register_root_region().
|
||||
// RUN: LSAN_BASE="detect_leaks=1:use_stacks=0:use_registers=0"
|
||||
// RUN: LSAN_BASE="use_stacks=0:use_registers=0"
|
||||
// RUN: %clangxx_lsan %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE %run %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE not %run %t foo 2>&1 | FileCheck %s
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Test that out-of-scope local variables are ignored by LSan.
|
||||
// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_registers=0:use_stacks=1"
|
||||
// RUN: LSAN_BASE="report_objects=1:use_registers=0:use_stacks=1"
|
||||
// RUN: %clangxx_lsan %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE":exitcode=0" %run %t 2>&1 | FileCheck --check-prefix=CHECK-sanity %s
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: LSAN_BASE="detect_leaks=1:use_registers=0:use_stacks=0"
|
||||
// RUN: LSAN_BASE="use_registers=0:use_stacks=0"
|
||||
// RUN: %clangxx_lsan %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE not %run %t 2>&1 | FileCheck %s
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// RUN: LSAN_BASE="detect_leaks=1:use_registers=0:use_stacks=0"
|
||||
// RUN: LSAN_BASE="use_registers=0:use_stacks=0"
|
||||
// RUN: %clangxx_lsan %s -o %t
|
||||
|
||||
// RUN: rm -f %t.supp
|
||||
|
|
|
@ -2,9 +2,8 @@
|
|||
// memory. Make sure we don't report these leaks.
|
||||
|
||||
// RUN: %clangxx_lsan %s -o %t
|
||||
// RUN: LSAN_BASE="detect_leaks=1"
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE %run %t 2>&1
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE not %run %t foo 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts= %run %t 2>&1
|
||||
// RUN: %env_lsan_opts= not %run %t foo 2>&1 | FileCheck %s
|
||||
// UNSUPPORTED: arm
|
||||
|
||||
#include <stdio.h>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// Test that fake stack (introduced by ASan's use-after-return mode) is included
|
||||
// in the root set.
|
||||
// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_registers=0"
|
||||
// RUN: LSAN_BASE="report_objects=1:use_registers=0"
|
||||
// RUN: %clangxx_lsan %s -O2 -o %t
|
||||
// RUN: ASAN_OPTIONS=$ASAN_OPTIONS:detect_stack_use_after_return=1 %env_lsan_opts=$LSAN_BASE:"use_stacks=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: ASAN_OPTIONS=$ASAN_OPTIONS:detect_stack_use_after_return=1 %env_lsan_opts=$LSAN_BASE:"use_stacks=1" %run %t 2>&1
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Test that initialized globals are included in the root set.
|
||||
// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0:use_registers=0"
|
||||
// RUN: LSAN_BASE="report_objects=1:use_stacks=0:use_registers=0"
|
||||
// RUN: %clangxx_lsan %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"use_globals=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"use_globals=1" %run %t 2>&1
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Test that uninitialized globals are included in the root set.
|
||||
// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0:use_registers=0"
|
||||
// RUN: LSAN_BASE="report_objects=1:use_stacks=0:use_registers=0"
|
||||
// RUN: %clangxx_lsan %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"use_globals=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"use_globals=1" %run %t 2>&1
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
// ASan-poisoned memory should be ignored if use_poisoned is false.
|
||||
// REQUIRES: asan
|
||||
// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0:use_registers=0"
|
||||
// RUN: LSAN_BASE="report_objects=1:use_stacks=0:use_registers=0"
|
||||
// RUN: %clangxx_lsan %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"use_poisoned=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"use_poisoned=1" %run %t 2>&1
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Test that registers of running threads are included in the root set.
|
||||
// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0"
|
||||
// RUN: LSAN_BASE="report_objects=1:use_stacks=0"
|
||||
// RUN: %clangxx_lsan -pthread %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"use_registers=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"use_registers=1" %run %t 2>&1
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Test that stack of main thread is included in the root set.
|
||||
// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_registers=0"
|
||||
// RUN: LSAN_BASE="report_objects=1:use_registers=0"
|
||||
// RUN: %clangxx_lsan %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"use_stacks=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"use_stacks=1" %run %t 2>&1
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Test that stacks of non-main threads are included in the root set.
|
||||
// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_registers=0"
|
||||
// RUN: LSAN_BASE="report_objects=1:use_registers=0"
|
||||
// RUN: %clangxx_lsan -pthread %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"use_stacks=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"use_stacks=1" %run %t 2>&1
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
// Test that unaligned pointers are detected correctly.
|
||||
// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0:use_registers=0"
|
||||
// RUN: LSAN_BASE="report_objects=1:use_stacks=0:use_registers=0"
|
||||
// RUN: %clangxx_lsan %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"use_unaligned=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"use_unaligned=1" %run %t 2>&1
|
||||
|
|
|
@ -33,12 +33,12 @@ else:
|
|||
config.name += config.name_suffix
|
||||
|
||||
# Platform-specific default LSAN_OPTIONS for lit tests.
|
||||
default_lsan_opts = ''
|
||||
default_lsan_opts = 'detect_leaks=1'
|
||||
if config.host_os == 'Darwin':
|
||||
# On Darwin, we default to `abort_on_error=1`, which would make tests run
|
||||
# much slower. Let's override this and run lit tests with 'abort_on_error=0'.
|
||||
# Also, make sure we do not overwhelm the syslog while testing.
|
||||
default_lsan_opts = 'abort_on_error=0'
|
||||
default_lsan_opts += ':abort_on_error=0'
|
||||
default_lsan_opts += ':log_to_syslog=0'
|
||||
|
||||
if default_lsan_opts:
|
||||
|
|
Loading…
Reference in New Issue