43 lines · cpp
1// RUN: rm -rf %t-dir2// RUN: mkdir %t-dir3 4// RUN: %clangxx_tsan -O1 -fno-builtin %s -DLIB -fPIC -fno-sanitize=thread -shared -o %t-dir/libignore_lib0.so5// RUN: %clangxx_tsan -O1 %s -L%t-dir -lignore_lib0 %link_libcxx_tsan -o %t6// RUN: echo running w/o suppressions:7// RUN: echo -n %t-dir > %t.ld_library_path8// RUN: %python -c "if 'LD_LIBRARY_PATH' in __import__('os').environ: print(':' + __import__('os').environ['LD_LIBRARY_PATH'], end='')" >> %t.ld_library_path9// RUN: env LD_LIBRARY_PATH=%{readfile:%t.ld_library_path} %deflake %run %t | FileCheck %s --check-prefix=CHECK-NOSUPP10// RUN: echo running with suppressions:11// RUN: env LD_LIBRARY_PATH=%{readfile:%t.ld_library_path} %env_tsan_opts=suppressions='%s.supp' %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-WITHSUPP12// RUN: echo running with generic suppression of noninstrumented code:13// RUN: env LD_LIBRARY_PATH=%{readfile:%t.ld_library_path} %env_tsan_opts=ignore_noninstrumented_modules=1 %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-WITHSUPP14 15// Tests that interceptors coming from a library specified in called_from_lib16// suppression are ignored.17 18// Some aarch64 kernels do not support non executable write pages19// REQUIRES: stable-runtime20 21// UNSUPPORTED: ios22 23#ifndef LIB24 25extern "C" void libfunc();26 27int main() {28 libfunc();29}30 31#else // #ifdef LIB32 33#include "ignore_lib_lib.h"34 35#endif // #ifdef LIB36 37// CHECK-NOSUPP: WARNING: ThreadSanitizer: data race38// CHECK-NOSUPP: OK39 40// CHECK-WITHSUPP-NOT: WARNING: ThreadSanitizer: data race41// CHECK-WITHSUPP: OK42 43