From: chefmax Date: Fri, 31 Jan 2014 13:42:10 +0000 (+0000) Subject: * c-c++-common/tsan/simple_race.c: Made test less flaky. X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=83f0ecbd56c4a76e6254c01cbc889972e375bc90;p=thirdparty%2Fgcc.git * c-c++-common/tsan/simple_race.c: Made test less flaky. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@207344 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6417c8db217c..c81b82d2dc56 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,6 @@ +2014-01-31 Maxim Ostapenko + * c-c++-common/tsan/simple_race.c: Made test less flaky. + 2014-01-31 Ilya Tocar * gcc.target/i386/m512-check.h: Use correct rounding values. diff --git a/gcc/testsuite/c-c++-common/tsan/simple_race.c b/gcc/testsuite/c-c++-common/tsan/simple_race.c index 24b88e8e5ee9..4626efd867dc 100644 --- a/gcc/testsuite/c-c++-common/tsan/simple_race.c +++ b/gcc/testsuite/c-c++-common/tsan/simple_race.c @@ -1,12 +1,35 @@ /* { dg-do run } */ +/* { dg-set-target-env-var TSAN_OPTIONS "halt_on_error=1" } */ /* { dg-shouldfail "tsan" } */ #include #include +#include + +#define MAX_ITERATIONS_NUMBER 100 +#define SLEEP_STEP 128000 + +unsigned int delay_time = 1000; + +static inline void delay () { + usleep(delay_time); +} + +extern int main_1(); + +int main() { + int i; + for (i = 0; i < MAX_ITERATIONS_NUMBER; i++) { + main_1(); + delay_time += delay_time < 256000 ? delay_time : SLEEP_STEP; + } + return 0; +} int Global; void *Thread1(void *x) { + delay(); Global = 42; return NULL; } @@ -16,7 +39,7 @@ void *Thread2(void *x) { return NULL; } -int main() { +int main_1() { pthread_t t[2]; pthread_create(&t[0], NULL, Thread1, NULL); pthread_create(&t[1], NULL, Thread2, NULL);