[hwasan] Fix TestCases/thread-uaf.c.
authorEvgenii Stepanov <eugenis@google.com>
Thu, 14 Oct 2021 21:56:38 +0000 (14:56 -0700)
committerEvgenii Stepanov <eugenis@google.com>
Thu, 14 Oct 2021 21:56:57 +0000 (14:56 -0700)
On newer glibc, this test detects an extra match somewhere under
pthread_getattr_np. This results in Thread: lines getting spread out in
the report and failing to match the CHECKs.

Fix the CHECKs to allow this possibility.

Reviewed By: fmayer

Differential Revision: https://reviews.llvm.org/D111841

compiler-rt/test/hwasan/TestCases/thread-uaf.c

index c368882..ea3820e 100644 (file)
@@ -1,6 +1,8 @@
 // Tests UAF detection where Allocate/Deallocate/Use
 // happen in separate threads.
-// RUN: %clang_hwasan %s -o %t && not %run %t 2>&1 | FileCheck %s
+// RUN: %clang_hwasan %s -o %t && not %run %t > %t.out 2>&1
+// RUN: cat %t.out | FileCheck %s
+// RUN: cat %t.out | FileCheck --check-prefix=CHECK-THREAD %s
 // REQUIRES: stable-runtime
 
 #include <pthread.h>
@@ -35,10 +37,10 @@ void *Use(void *arg) {
   // CHECK: in Deallocate
   // CHECK: previously allocated here:
   // CHECK: in Allocate
-  // CHECK-DAG: Thread: T2 0x
-  // CHECK-DAG: Thread: T3 0x
-  // CHECK-DAG: Thread: T0 0x
-  // CHECK-DAG: Thread: T1 0x
+  // CHECK-THREAD-DAG: Thread: T2 0x
+  // CHECK-THREAD-DAG: Thread: T3 0x
+  // CHECK-THREAD-DAG: Thread: T0 0x
+  // CHECK-THREAD-DAG: Thread: T1 0x
   __sync_fetch_and_add(&state, 1);
   return NULL;
 }