From 8c01e76d27d57af7913a9c9a9b925b1264fab98f Mon Sep 17 00:00:00 2001 From: Alexey Samsonov Date: Fri, 28 Dec 2012 09:32:36 +0000 Subject: [PATCH] [TSan] Add lit test for -fsanitize-blacklist= flag llvm-svn: 171185 --- .../lib/tsan/lit_tests/Helpers/blacklist.txt | 1 + .../lib/tsan/lit_tests/Helpers/lit.local.cfg | 2 ++ compiler-rt/lib/tsan/lit_tests/blacklist.cc | 31 +++++++++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 compiler-rt/lib/tsan/lit_tests/Helpers/blacklist.txt create mode 100644 compiler-rt/lib/tsan/lit_tests/Helpers/lit.local.cfg create mode 100644 compiler-rt/lib/tsan/lit_tests/blacklist.cc diff --git a/compiler-rt/lib/tsan/lit_tests/Helpers/blacklist.txt b/compiler-rt/lib/tsan/lit_tests/Helpers/blacklist.txt new file mode 100644 index 000000000000..8000206078b1 --- /dev/null +++ b/compiler-rt/lib/tsan/lit_tests/Helpers/blacklist.txt @@ -0,0 +1 @@ +fun:*Thread2* diff --git a/compiler-rt/lib/tsan/lit_tests/Helpers/lit.local.cfg b/compiler-rt/lib/tsan/lit_tests/Helpers/lit.local.cfg new file mode 100644 index 000000000000..9246b10352a7 --- /dev/null +++ b/compiler-rt/lib/tsan/lit_tests/Helpers/lit.local.cfg @@ -0,0 +1,2 @@ +# Files in this directory are helper files for other output tests. +config.suffixes = [] diff --git a/compiler-rt/lib/tsan/lit_tests/blacklist.cc b/compiler-rt/lib/tsan/lit_tests/blacklist.cc new file mode 100644 index 000000000000..855c4ff1aeab --- /dev/null +++ b/compiler-rt/lib/tsan/lit_tests/blacklist.cc @@ -0,0 +1,31 @@ +// Test blacklist functionality for TSan. + +// RUN: %clangxx_tsan -O1 %s \ +// RUN: -fsanitize-blacklist=%p/Helpers/blacklist.txt \ +// RUN: -o %t && %t 2>&1 | FileCheck %s +#include +#include + +int Global; + +void *Thread1(void *x) { + Global++; + return NULL; +} + +void *Thread2(void *x) { + Global--; + return NULL; +} + +int main() { + pthread_t t[2]; + pthread_create(&t[0], NULL, Thread1, NULL); + pthread_create(&t[1], NULL, Thread2, NULL); + pthread_join(t[0], NULL); + pthread_join(t[1], NULL); + printf("PASS\n"); + return 0; +} + +// CHECK-NOT: ThreadSanitizer: data race