Skip to content

Commit

Permalink
[asan] Remove "COLLISION" workaround for datarace in asan
Browse files Browse the repository at this point in the history
"nested bug in the same thread" is not expected in case like this and was caused
by google/sanitizers#858

llvm-svn=313844
  • Loading branch information
vitalybuka authored and vitalybuka committed Sep 21, 2017
1 parent b403c78 commit e0b06f8
Showing 1 changed file with 8 additions and 11 deletions.
19 changes: 8 additions & 11 deletions compiler-rt/test/asan/TestCases/Posix/halt_on_error-torture.cc
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,16 @@
// RUN: %clangxx_asan -fsanitize-recover=address -pthread %s -o %t
//
// RUN: %env_asan_opts=halt_on_error=false:suppress_equal_pcs=false %run %t 1 10 >%t.log 2>&1
// RUN: FileCheck %s <%t.log
// RUN: grep 'ERROR: AddressSanitizer: use-after-poison' %t.log | count 10
// RUN: FileCheck --check-prefix=CHECK-NO-COLLISION %s <%t.log
// RUN: FileCheck %s <%t.log
//
// Collisions are unlikely but still possible so we need the ||.
// RUN: %env_asan_opts=halt_on_error=false:suppress_equal_pcs=false:exitcode=0 %run %t 10 20 >%t.log 2>&1
// RUN: FileCheck --check-prefix=CHECK-COLLISION %s <%t.log || FileCheck --check-prefix=CHECK-NO-COLLISION %s <%t.log
// RUN: %env_asan_opts=halt_on_error=false:suppress_equal_pcs=false:exitcode=0 %run %t 10 20 >%t.log 2>&1
// RUN: grep 'ERROR: AddressSanitizer: use-after-poison' %t.log | count 200
// RUN: FileCheck %s <%t.log
//
// Collisions are unlikely but still possible so we need the ||.
// RUN: %env_asan_opts=halt_on_error=false:exitcode=0 %run %t 10 20 >%t.log 2>&1
// RUN: FileCheck --check-prefix=CHECK-COLLISION %s <%t.log || FileCheck --check-prefix=CHECK-NO-COLLISION %s <%t.log
// RUN: %env_asan_opts=halt_on_error=false:exitcode=0 %run %t 10 20 >%t.log 2>&1
// RUN: grep 'ERROR: AddressSanitizer: use-after-poison' %t.log | count 1
// RUN: FileCheck %s <%t.log

#include <stdio.h>
#include <stdlib.h>
Expand All @@ -39,7 +38,6 @@ void *run(void *arg) {

for (size_t i = 0; i < niter; ++i) {
random_delay(&seed);
// Expect error collisions here
// CHECK: ERROR: AddressSanitizer: use-after-poison
volatile int idx = 0;
tmp[idx] = 0;
Expand Down Expand Up @@ -73,8 +71,7 @@ int main(int argc, char **argv) {
}
}

// CHECK-COLLISION: AddressSanitizer: nested bug in the same thread, aborting
// CHECK-NO-COLLISION: All threads terminated
// CHECK: All threads terminated
printf("All threads terminated\n");

delete [] tids;
Expand Down

0 comments on commit e0b06f8

Please sign in to comment.