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
This commit is contained in:
Dmitry Vyukov 2021-12-13 09:27:07 +01:00
parent b0319ab79b
commit 7de546e9e8

View File

@ -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