forked from OSchip/llvm-project
Make lsan TestCases more consistent
Inlining `LSAN_BASE` makes the lsan TestCases more consistent to the other sanitizer TestCases. It is also needed on Windows: https://reviews.llvm.org/D115103 Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D124322
This commit is contained in:
parent
057863a9bc
commit
d08e5d4cc6
|
@ -1,9 +1,8 @@
|
|||
// Test for threads spawned with wqthread_start
|
||||
// RUN: LSAN_BASE="report_objects=1:use_stacks=0:use_registers=0"
|
||||
// RUN: %clangxx_lsan %s -DDISPATCH_ASYNC -o %t-async -framework Foundation
|
||||
// RUN: %clangxx_lsan %s -DDISPATCH_SYNC -o %t-sync -framework Foundation
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE not %run %t-async 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE not %run %t-sync 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_stacks=0:use_registers=0" not %run %t-async 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_stacks=0:use_registers=0" not %run %t-sync 2>&1 | FileCheck %s
|
||||
|
||||
#include <dispatch/dispatch.h>
|
||||
#include <pthread.h>
|
||||
|
|
|
@ -3,10 +3,9 @@
|
|||
// user-installed TSD destructors have finished running (since they may contain
|
||||
// additional cleanup tasks). LSan doesn't actually meet that goal 100%, but it
|
||||
// makes its best effort.
|
||||
// RUN: LSAN_BASE="report_objects=1:use_registers=0:use_stacks=0"
|
||||
// RUN: %clang_lsan %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:use_tls=1 %run %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:use_tls=0 not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_registers=0:use_stacks=0:use_tls=1" %run %t
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_registers=0:use_stacks=0:use_tls=0" not %run %t 2>&1 | FileCheck %s
|
||||
|
||||
// Investigate why it does not fail with use_stack=0
|
||||
// UNSUPPORTED: arm-linux || armhf-linux
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
// Regression test. Disabler should not depend on TSD validity.
|
||||
// RUN: LSAN_BASE="report_objects=1:use_registers=0:use_stacks=0:use_tls=1:use_ld_allocations=0"
|
||||
// RUN: %clang_lsan %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE %run %t
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_registers=0:use_stacks=0:use_tls=1:use_ld_allocations=0" %run %t
|
||||
|
||||
#include <assert.h>
|
||||
#include <pthread.h>
|
||||
|
|
|
@ -4,11 +4,10 @@
|
|||
// https://bugs.llvm.org/show_bug.cgi?id=37804
|
||||
// XFAIL: glibc-2.27
|
||||
|
||||
// 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
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"use_tls=1" %run %t 2>&1
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_stacks=0:use_registers=0:use_ld_allocations=0:use_tls=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_stacks=0:use_registers=0:use_ld_allocations=0:use_tls=1" %run %t 2>&1
|
||||
// RUN: %env_lsan_opts="" %run %t 2>&1
|
||||
// UNSUPPORTED: arm,powerpc,i386-linux && !android
|
||||
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
// Test that dynamically allocated thread-specific storage is included in the root set.
|
||||
// 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
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_stacks=0:use_registers=0:use_tls=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_stacks=0:use_registers=0:use_tls=1" %run %t 2>&1
|
||||
// RUN: %env_lsan_opts="" %run %t 2>&1
|
||||
|
||||
// Investigate why it does not fail with use_tls=0
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
// Test that statically allocated thread-specific storage is included in the root set.
|
||||
// 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
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_stacks=0:use_registers=0:use_tls=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_stacks=0:use_registers=0:use_tls=1" %run %t 2>&1
|
||||
// RUN: %env_lsan_opts="" %run %t 2>&1
|
||||
|
||||
#include <assert.h>
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
// Test that statically allocated TLS space is included in the root set.
|
||||
// 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
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_stacks=0:use_registers=0:use_tls=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_stacks=0:use_registers=0:use_tls=1" %run %t 2>&1
|
||||
// RUN: %env_lsan_opts="" %run %t 2>&1
|
||||
|
||||
#include <stdio.h>
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
// Test for __lsan_disable() / __lsan_enable().
|
||||
// RUN: LSAN_BASE="report_objects=1:use_registers=0:use_stacks=0:use_tls=0"
|
||||
// RUN: %clang_lsan %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts=report_objects=1:use_registers=0:use_stacks=0:use_tls=0 not %run %t 2>&1 | FileCheck %s
|
||||
|
||||
// Investigate why it does not fail with use_tls=0
|
||||
// UNSUPPORTED: arm-linux || armhf-linux
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
// Test for ScopedDisabler.
|
||||
// RUN: LSAN_BASE="report_objects=1:use_registers=0:use_stacks=0:use_tls=0"
|
||||
// RUN: %clangxx_lsan %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts=report_objects=1:use_registers=0:use_stacks=0:use_tls=0 not %run %t 2>&1 | FileCheck %s
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
// 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="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
|
||||
// RUN: %env_lsan_opts=use_stacks=0:use_registers=0 not %run %t 2>&1 | FileCheck --check-prefix=CHECK-strict %s
|
||||
// RUN: %env_lsan_opts=use_stacks=0:use_registers=0 not %run %t foo 2>&1 | FileCheck --check-prefix=CHECK-normal %s
|
||||
|
||||
// Investigate why LeakyGlobal leak does show
|
||||
// UNSUPPORTED: arm-linux || armhf-linux
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
// A benchmark that executes malloc/free pairs in parallel.
|
||||
// Usage: ./a.out number_of_threads total_number_of_allocations
|
||||
// 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
|
||||
// RUN: %env_lsan_opts=use_ld_allocations=0 %run %t 5 1000000 2>&1
|
||||
#include <assert.h>
|
||||
#include <pthread.h>
|
||||
#include <stdlib.h>
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
// Test for __lsan_ignore_object().
|
||||
// RUN: LSAN_BASE="report_objects=1:use_registers=0:use_stacks=0:use_tls=0"
|
||||
// RUN: %clang_lsan %s -o %t
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts=report_objects=1:use_registers=0:use_stacks=0:use_tls=0 not %run %t 2>&1 | FileCheck %s
|
||||
|
||||
// Investigate why it does not fail with use_stack=0
|
||||
// UNSUPPORTED: arm-linux || armhf-linux
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
// Test that LargeMmapAllocator's chunks aren't reachable via some internal data structure.
|
||||
// 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
|
||||
// RUN: %env_lsan_opts=report_objects=1:use_stacks=0:use_registers=0 not %run %t 2>&1 | FileCheck %s
|
||||
|
||||
// For 32 bit LSan it's pretty likely that large chunks are "reachable" from some
|
||||
// internal data structures (e.g. Glibc global data).
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
// Test for the leak_check_at_exit flag.
|
||||
// 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
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"leak_check_at_exit=0" not %run %t foo 2>&1 | FileCheck %s --check-prefix=CHECK-do
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"leak_check_at_exit=0" %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-dont
|
||||
// RUN: %env_lsan_opts=use_stacks=0:use_registers=0 not %run %t foo 2>&1 | FileCheck %s --check-prefix=CHECK-do
|
||||
// RUN: %env_lsan_opts=use_stacks=0:use_registers=0 not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-do
|
||||
// RUN: %env_lsan_opts=use_stacks=0:use_registers=0:leak_check_at_exit=0 not %run %t foo 2>&1 | FileCheck %s --check-prefix=CHECK-do
|
||||
// RUN: %env_lsan_opts=use_stacks=0:use_registers=0:leak_check_at_exit=0 %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-dont
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
// Test for disabling LSan at link-time.
|
||||
// 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
|
||||
// RUN: %env_lsan_opts=use_stacks=0:use_registers=0 %run %t
|
||||
// RUN: %env_lsan_opts=use_stacks=0:use_registers=0 not %run %t foo 2>&1 | FileCheck %s
|
||||
//
|
||||
// UNSUPPORTED: darwin
|
||||
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
// Test that lsan handles tls correctly for many threads
|
||||
// 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
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_stacks=0:use_registers=0:use_tls=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_stacks=0:use_registers=0:use_tls=1" %run %t 2>&1
|
||||
// RUN: %env_lsan_opts="" %run %t 2>&1
|
||||
|
||||
// On glibc, this requires the range returned by GetTLS to include
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
// Test that lsan handles tls correctly for many threads
|
||||
// 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
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_stacks=0:use_registers=0:use_tls=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_stacks=0:use_registers=0:use_tls=1" %run %t 2>&1
|
||||
// RUN: %env_lsan_opts="" %run %t 2>&1
|
||||
|
||||
// Patch r303906 did not fix all the problems.
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
// Regression test: pointers to self should not confuse LSan into thinking the
|
||||
// object is indirectly leaked. Only external pointers count.
|
||||
// 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="report_objects=1:use_registers=0:use_stacks=0" not %run %t 2>&1 | FileCheck %s
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
// Print matched suppressions only if print_suppressions=1 AND at least one is
|
||||
// matched. Default is print_suppressions=true.
|
||||
// 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
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:print_suppressions=0 %run %t foo 2>&1 | FileCheck %s --check-prefix=CHECK-dont-print
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE %run %t foo 2>&1 | FileCheck %s --check-prefix=CHECK-print
|
||||
// RUN: %env_lsan_opts=use_registers=0:use_stacks=0:print_suppressions=0 %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-dont-print
|
||||
// RUN: %env_lsan_opts=use_registers=0:use_stacks=0 %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-dont-print
|
||||
// RUN: %env_lsan_opts=use_registers=0:use_stacks=0:print_suppressions=0 %run %t foo 2>&1 | FileCheck %s --check-prefix=CHECK-dont-print
|
||||
// RUN: %env_lsan_opts=use_registers=0:use_stacks=0 %run %t foo 2>&1 | FileCheck %s --check-prefix=CHECK-print
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
// Test for on-demand leak checking.
|
||||
// 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
|
||||
// RUN: %env_lsan_opts=use_stacks=0:use_registers=0 %run %t foo 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts=use_stacks=0:use_registers=0 %run %t 2>&1 | FileCheck %s
|
||||
//
|
||||
// UNSUPPORTED: darwin
|
||||
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
// Test for __lsan_(un)register_root_region().
|
||||
// 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
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:use_root_regions=0 not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts=use_stacks=0:use_registers=0 %run %t
|
||||
// RUN: %env_lsan_opts=use_stacks=0:use_registers=0 not %run %t foo 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts=use_stacks=0:use_registers=0:use_root_regions=0 not %run %t 2>&1 | FileCheck %s
|
||||
|
||||
#include <assert.h>
|
||||
#include <stdio.h>
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
// Test that out-of-scope local variables are ignored by LSan.
|
||||
// RUN: LSAN_BASE="report_objects=1:use_registers=0:use_stacks=1"
|
||||
|
||||
// LSan-in-ASan fails at -O0 on aarch64, because the stack use-after-return
|
||||
// instrumentation stashes the argument to `PutPointerOnStaleStack` on the stack
|
||||
|
@ -10,8 +9,8 @@
|
|||
// callee-saved register for rematerialization instead.
|
||||
// RUN: %clangxx_lsan -O1 %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
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_registers=0:use_stacks=1" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_registers=0:use_stacks=1:exitcode=0" %run %t 2>&1 | FileCheck --check-prefix=CHECK-sanity %s
|
||||
//
|
||||
// x86 passes parameters through stack that may lead to false negatives
|
||||
// The same applies to s390x register save areas.
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
// 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
|
||||
// RUN: %env_lsan_opts=use_registers=0:use_stacks=0 not %run %t 2>&1 | FileCheck %s
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
|
|
@ -1,18 +1,17 @@
|
|||
// RUN: LSAN_BASE="use_registers=0:use_stacks=0"
|
||||
// RUN: %clangxx_lsan %s -o %t
|
||||
|
||||
// RUN: rm -f %t.supp
|
||||
// RUN: touch %t.supp
|
||||
// RUN: %push_to_device %t.supp %device_rundir/%t.supp
|
||||
// RUN: %env_lsan_opts="$LSAN_BASE:suppressions='%device_rundir/%t.supp'" not %run %t 2>&1 | FileCheck %s --check-prefix=NOSUPP
|
||||
// RUN: %env_lsan_opts="use_registers=0:use_stacks=0:suppressions='%device_rundir/%t.supp'" not %run %t 2>&1 | FileCheck %s --check-prefix=NOSUPP
|
||||
|
||||
// RUN: echo "leak:*LSanTestLeakingFunc*" > %t.supp
|
||||
// RUN: %push_to_device %t.supp %device_rundir/%t.supp
|
||||
// RUN: %env_lsan_opts="$LSAN_BASE:suppressions='%device_rundir/%t.supp'" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts="use_registers=0:use_stacks=0:suppressions='%device_rundir/%t.supp'" not %run %t 2>&1 | FileCheck %s
|
||||
//
|
||||
// RUN: echo "leak:%t" > %t.supp
|
||||
// RUN: %push_to_device %t.supp %device_rundir/%t.supp
|
||||
// RUN: %env_lsan_opts="$LSAN_BASE:suppressions='%device_rundir/%t.supp':symbolize=false" %run %t
|
||||
// RUN: %env_lsan_opts="use_registers=0:use_stacks=0:suppressions='%device_rundir/%t.supp':symbolize=false" %run %t
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
// Test that fake stack (introduced by ASan's use-after-return mode) is included
|
||||
// in the root set.
|
||||
// RUN: LSAN_BASE="report_objects=1:use_registers=0"
|
||||
// RUN: %clangxx_lsan %s -O2 -o %t
|
||||
// RUN: 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=detect_stack_use_after_return=1 %env_lsan_opts=$LSAN_BASE:"use_stacks=1" %run %t 2>&1
|
||||
// RUN: ASAN_OPTIONS=detect_stack_use_after_return=1 %env_lsan_opts="" %run %t 2>&1
|
||||
// RUN: env ASAN_OPTIONS=detect_stack_use_after_return=1 %env_lsan_opts="report_objects=1:use_registers=0:use_stacks=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: env ASAN_OPTIONS=detect_stack_use_after_return=1 %env_lsan_opts="report_objects=1:use_registers=0:use_stacks=1" %run %t 2>&1
|
||||
// RUN: env ASAN_OPTIONS=detect_stack_use_after_return=1 %env_lsan_opts="" %run %t 2>&1
|
||||
|
||||
// Investigate why it does not fail with use_stack=0
|
||||
// UNSUPPORTED: arm-linux || armhf-linux
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
// Test that initialized globals are included in the root set.
|
||||
// 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
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_stacks=0:use_registers=0:use_globals=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_stacks=0:use_registers=0:use_globals=1" %run %t 2>&1
|
||||
// RUN: %env_lsan_opts="" %run %t 2>&1
|
||||
|
||||
#include <stdio.h>
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
// Test that uninitialized globals are included in the root set.
|
||||
// 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
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_stacks=0:use_registers=0:use_globals=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_stacks=0:use_registers=0:use_globals=1" %run %t 2>&1
|
||||
// RUN: %env_lsan_opts="" %run %t 2>&1
|
||||
|
||||
#include <stdio.h>
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
// Test that unused globals are included in the root set.
|
||||
// RUN: %clangxx_lsan -O2 %s -DTEST_LIB -c -o %t.o
|
||||
// RUN: %clangxx_lsan -O2 %s %t.o -o %t
|
||||
// RUN: LSAN_BASE="use_stacks=0:use_registers=0"
|
||||
// RUN: %env_lsan_opts=$LSAN_BASE:"use_globals=1" %run %t 2>&1 | FileCheck %s --implicit-check-not=leak
|
||||
// RUN: %env_lsan_opts="use_stacks=0:use_registers=0:use_globals=1" %run %t 2>&1 | FileCheck %s --implicit-check-not=leak
|
||||
// RUN: %env_lsan_opts="" %run %t 2>&1 | FileCheck %s --implicit-check-not=leak
|
||||
|
||||
// FIXME: This check is not very important and fails on arm7.
|
||||
// %env_lsan_opts=$LSAN_BASE:"use_globals=0" not %run %t 2>&1 | FileCheck %s --check-prefixes=LEAK
|
||||
// %env_lsan_opts="use_stacks=0:use_registers=0:use_globals=0" not %run %t 2>&1 | FileCheck %s --check-prefixes=LEAK
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
// ASan-poisoned memory should be ignored if use_poisoned is false.
|
||||
// REQUIRES: asan
|
||||
// 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
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_stacks=0:use_registers=0:use_poisoned=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_stacks=0:use_registers=0:use_poisoned=1" %run %t 2>&1
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
// Test that registers of running threads are included in the root set.
|
||||
// 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
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_stacks=0:use_registers=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_stacks=0:use_registers=1" %run %t 2>&1
|
||||
// RUN: %env_lsan_opts="" %run %t 2>&1
|
||||
|
||||
#include "sanitizer_common/print_address.h"
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
// Test that registers of running threads are included in the root set.
|
||||
// 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
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_stacks=0:use_registers=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_stacks=0:use_registers=1" %run %t 2>&1
|
||||
// RUN: %env_lsan_opts="" %run %t 2>&1
|
||||
|
||||
// FIXME: Support more platforms.
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
// Test that stack of main thread is included in the root set.
|
||||
// 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
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_registers=0:use_stacks=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_registers=0:use_stacks=1" %run %t 2>&1
|
||||
// RUN: %env_lsan_opts="" %run %t 2>&1
|
||||
|
||||
#include <stdio.h>
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
// Test that stacks of non-main threads are included in the root set.
|
||||
// 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
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_registers=0:use_stacks=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_registers=0:use_stacks=1" %run %t 2>&1
|
||||
// RUN: %env_lsan_opts="" %run %t 2>&1
|
||||
|
||||
#include <assert.h>
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
// Test that unaligned pointers are detected correctly.
|
||||
// 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
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_stacks=0:use_registers=0:use_unaligned=0" not %run %t 2>&1 | FileCheck %s
|
||||
// RUN: %env_lsan_opts="report_objects=1:use_stacks=0:use_registers=0:use_unaligned=1" %run %t 2>&1
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
|
Loading…
Reference in New Issue