diff options
author | Alexey Samsonov <samsonov@google.com> | 2014-02-14 14:35:48 +0000 |
---|---|---|
committer | Alexey Samsonov <samsonov@google.com> | 2014-02-14 14:35:48 +0000 |
commit | e6a6183e9b8ecf7dec8808fa87577d5b574ca22e (patch) | |
tree | a6e5f3181f2e0c4ffc21f9648c5e9c873f34b330 /compiler-rt/test/tsan/ignore_lib3.cc | |
parent | 9f20d6703479a952465f7db0c2fbd70904c030c2 (diff) | |
download | bcm5719-llvm-e6a6183e9b8ecf7dec8808fa87577d5b574ca22e.tar.gz bcm5719-llvm-e6a6183e9b8ecf7dec8808fa87577d5b574ca22e.zip |
Move TSan lit-tests under test/tsan
llvm-svn: 201414
Diffstat (limited to 'compiler-rt/test/tsan/ignore_lib3.cc')
-rw-r--r-- | compiler-rt/test/tsan/ignore_lib3.cc | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/compiler-rt/test/tsan/ignore_lib3.cc b/compiler-rt/test/tsan/ignore_lib3.cc new file mode 100644 index 00000000000..8f237fcc81f --- /dev/null +++ b/compiler-rt/test/tsan/ignore_lib3.cc @@ -0,0 +1,33 @@ +// RUN: %clangxx_tsan -O1 %s -DLIB -fPIC -fno-sanitize=thread -shared -o %T/libignore_lib3.so +// RUN: %clangxx_tsan -O1 %s -o %t +// RUN: TSAN_OPTIONS="$TSAN_OPTIONS suppressions=%s.supp" not %t 2>&1 | FileCheck %s + +// Tests that unloading of a library matched against called_from_lib suppression +// causes program crash (this is not supported). + +#ifndef LIB + +#include <dlfcn.h> +#include <stdlib.h> +#include <stdio.h> +#include <errno.h> +#include <libgen.h> +#include <string> + +int main(int argc, char **argv) { + std::string lib = std::string(dirname(argv[0])) + "/libignore_lib3.so"; + void *h = dlopen(lib.c_str(), RTLD_GLOBAL | RTLD_NOW); + dlclose(h); + fprintf(stderr, "OK\n"); +} + +#else // #ifdef LIB + +extern "C" void libfunc() { +} + +#endif // #ifdef LIB + +// CHECK: ThreadSanitizer: library {{.*}} that was matched against called_from_lib suppression 'ignore_lib3.so' is unloaded +// CHECK-NOT: OK + |