diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2014-05-30 14:27:31 +0000 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2014-05-30 14:27:31 +0000 |
| commit | dee68ba6e315f1b92ac84cd3e8fed3fe6b90ace3 (patch) | |
| tree | eb553328b99b99cd339437bcea8ed2852fe870bf | |
| parent | 2a0783db235904d12a053581b5e309e2500ff3fe (diff) | |
| download | bcm5719-llvm-dee68ba6e315f1b92ac84cd3e8fed3fe6b90ace3.tar.gz bcm5719-llvm-dee68ba6e315f1b92ac84cd3e8fed3fe6b90ace3.zip | |
tsan: add a test from data-race-test suite:
https://code.google.com/p/data-race-test/source/browse/trunk/unittest/racecheck_unittest.cc
llvm-svn: 209900
| -rw-r--r-- | compiler-rt/test/tsan/race_on_puts.cc | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/compiler-rt/test/tsan/race_on_puts.cc b/compiler-rt/test/tsan/race_on_puts.cc new file mode 100644 index 00000000000..1f2b4db836e --- /dev/null +++ b/compiler-rt/test/tsan/race_on_puts.cc @@ -0,0 +1,29 @@ +// RUN: %clangxx_tsan -O1 %s -o %t && %deflake %run %t | FileCheck %s +#include <pthread.h> +#include <stdio.h> +#include <unistd.h> + +char s[] = "abracadabra"; + +void *Thread0(void *p) { + puts(s); + return 0; +} + +void *Thread1(void *p) { + s[3] = 'z'; + return 0; +} + +int main() { + pthread_t th[2]; + pthread_create(&th[0], 0, Thread0, 0); + pthread_create(&th[1], 0, Thread1, 0); + pthread_join(th[0], 0); + pthread_join(th[1], 0); + fprintf(stderr, "DONE"); +} + +// CHECK: WARNING: ThreadSanitizer: data race +// CHECK: DONE + |

