[compiler-rt] r224511 - tsan: disable the test even harder
Dmitry Vyukov
dvyukov at google.com
Thu Dec 18 02:55:41 PST 2014
Author: dvyukov
Date: Thu Dec 18 04:55:41 2014
New Revision: 224511
URL: http://llvm.org/viewvc/llvm-project?rev=224511&view=rev
Log:
tsan: disable the test even harder
currently it fails in cmake build with weird errors:
/tmp/real_deadlock_detector_stress_test-68a5ae.o: In function `__clang_call_terminate':
/ssd/src/llvm/projects/compiler-rt/test/tsan/real_deadlock_detector_stress_test.cc:(.text.__clang_call_terminate[__clang_call_terminate]+0x12): undefined reference to `__cxa_begin_catch'
/ssd/src/llvm/projects/compiler-rt/test/tsan/real_deadlock_detector_stress_test.cc:(.text.__clang_call_terminate[__clang_call_terminate]+0x17): undefined reference to `std::terminate()'
/tmp/real_deadlock_detector_stress_test-68a5ae.o: In function `std::vector<int, std::allocator<int> >::_M_check_len(unsigned long, char const*) const':
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/bits/stl_vector.h:1339: undefined reference to `std::__throw_length_error(char const*)'
/tmp/real_deadlock_detector_stress_test-68a5ae.o: In function `__gnu_cxx::new_allocator<int>::allocate(unsigned long, void const*)':
/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../include/c++/4.8/ext/new_allocator.h:102: undefined reference to `std::__throw_bad_alloc()'
/tmp/real_deadlock_detector_stress_test-68a5ae.o:(.eh_frame+0x63): undefined reference to `__gxx_personality_v0'
clang-3.5: error: linker command failed with exit code 1 (use -v to see invocation)
Modified:
compiler-rt/trunk/test/tsan/real_deadlock_detector_stress_test.cc
Modified: compiler-rt/trunk/test/tsan/real_deadlock_detector_stress_test.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/tsan/real_deadlock_detector_stress_test.cc?rev=224511&r1=224510&r2=224511&view=diff
==============================================================================
--- compiler-rt/trunk/test/tsan/real_deadlock_detector_stress_test.cc (original)
+++ compiler-rt/trunk/test/tsan/real_deadlock_detector_stress_test.cc Thu Dec 18 04:55:41 2014
@@ -1,4 +1,32 @@
// RUN: %clang_tsan -O1 %s -o %t && %run %t 2>&1 | FileCheck %s
+
+#if 1
+
+#include <stdio.h>
+
+int main() {
+ // Currently fails with:
+ // CHECK failed: bv_.clearBit(lock_id)
+
+ /*
+ And in cmake build it also fails with:
+ In function `__clang_call_terminate':
+ real_deadlock_detector_stress_test.cc:(.text.__clang_call_terminate
+ [__clang_call_terminate]+0x12): undefined reference to `__cxa_begin_catch'
+ real_deadlock_detector_stress_test.cc:(.text.__clang_call_terminate
+ [__clang_call_terminate]+0x17): undefined reference to `std::terminate()'
+ In function `std::vector<int, std::allocator<int> >::_M_check_len
+ (unsigned long, char const*) const':
+ stl_vector.h:1339: undefined reference to `std::__throw_length_error
+ (char const*)'
+ */
+
+ fprintf(stderr, "DONE\n");
+ return 0;
+}
+
+#else
+
#include <pthread.h>
#include <stdlib.h>
#include <stdio.h>
@@ -8,9 +36,9 @@
#include <vector>
#include <algorithm>
-const int kThreads = 32;
-const int kMutexes = 32 << 10;
-const int kIters = 100 << 10;
+const int kThreads = 4;
+const int kMutexes = 16 << 10;
+const int kIters = 1 << 20;
const int kMaxPerThread = 10;
const int kStateInited = 0;
@@ -164,12 +192,9 @@ void *Thread(void *seed) {
}
int main() {
- // Currently fails with:
- // CHECK failed: bv_.clearBit(lock_id)
- fprintf(stderr, "DONE\n");
- return 0;
-
- int s = time(0);
+ timespec ts;
+ clock_gettime(CLOCK_MONOTONIC, &ts);
+ unsigned s = (unsigned)ts.tv_nsec;
fprintf(stderr, "seed %d\n", s);
srand(s);
for (int i = 0; i < kMutexes; i++)
@@ -186,3 +211,5 @@ int main() {
// CHECK-NOT: WARNING: ThreadSanitizer
// CHECK: DONE
+#endif
+
More information about the llvm-commits
mailing list