[compiler-rt] 7de546e - tsan: deflake flush_memory.cpp

Dmitry Vyukov via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 13 03:01:35 PST 2021


Author: Dmitry Vyukov
Date: 2021-12-13T12:01:30+01:00
New Revision: 7de546e9e8b6c07ef1247f518b2995ec4efbb7d2

URL: https://github.com/llvm/llvm-project/commit/7de546e9e8b6c07ef1247f518b2995ec4efbb7d2
DIFF: https://github.com/llvm/llvm-project/commit/7de546e9e8b6c07ef1247f518b2995ec4efbb7d2.diff

LOG: tsan: deflake flush_memory.cpp

The test contains a race and checks that it's detected.
But the race may not be detected since we are doing aggressive flushes
and if the state flush happens between racing accesses, tsan won't
detect the race). So return 1 to make the test deterministic
regardless of the race.

Reviewed By: melver

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

Added: 
    

Modified: 
    compiler-rt/test/tsan/flush_memory.cpp

Removed: 
    


################################################################################
diff  --git a/compiler-rt/test/tsan/flush_memory.cpp b/compiler-rt/test/tsan/flush_memory.cpp
index ee42e38ae382a..03caea9a8f6bf 100644
--- a/compiler-rt/test/tsan/flush_memory.cpp
+++ b/compiler-rt/test/tsan/flush_memory.cpp
@@ -1,5 +1,5 @@
 // RUN: %clangxx_tsan -O1 %s -o %t
-// RUN: %env_tsan_opts=flush_memory_ms=1:flush_symbolizer_ms=1:memory_limit_mb=1 %deflake %run %t | FileCheck %s
+// RUN: %env_tsan_opts=flush_memory_ms=1:flush_symbolizer_ms=1:memory_limit_mb=1 not %run %t 2>&1 | FileCheck %s
 #include "test.h"
 
 long X, Y;
@@ -29,8 +29,10 @@ int main() {
   sleep(2);
   __tsan_flush_memory();
   fprintf(stderr, "DONE\n");
-  return 0;
+  // The race may not be detected since we are doing aggressive flushes
+  // (if the state flush happens between racing accesses, tsan won't
+  // detect the race). So return 1 to make the test deterministic.
+  return 1;
 }
 
-// CHECK: WARNING: ThreadSanitizer: data race
 // CHECK: DONE


        


More information about the llvm-commits mailing list