From: Brian Norris Date: Mon, 8 Oct 2012 05:19:01 +0000 (-0700) Subject: tests: add some normal loads/stores to test data races X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=7616e1626a8bdb735ed4f0b4da56f4816fc9cded;p=c11tester.git tests: add some normal loads/stores to test data races These tests had become less useful, since the model-checker would ignore release sequence fixup in the absence of pending data races. So add some normal loads and stores to our tests, inducing some data races and some proper synchronization. --- diff --git a/test/pending-release.c b/test/pending-release.c index 37433b15..f3ae9f43 100644 --- a/test/pending-release.c +++ b/test/pending-release.c @@ -12,9 +12,11 @@ #include "stdatomic.h" atomic_int x; +int var = 0; static void a(void *obj) { + store_32(&var, 1); atomic_store_explicit(&x, *((int *)obj), memory_order_release); atomic_store_explicit(&x, *((int *)obj) + 1, memory_order_relaxed); } @@ -23,6 +25,7 @@ static void b2(void *obj) { int r = atomic_load_explicit(&x, memory_order_acquire); printf("r = %u\n", r); + store_32(&var, 3); } static void b1(void *obj) @@ -31,6 +34,7 @@ static void b1(void *obj) int i = 7; int r = atomic_load_explicit(&x, memory_order_acquire); printf("r = %u\n", r); + store_32(&var, 2); thrd_create(&t3, (thrd_start_t)&a, &i); thrd_create(&t4, (thrd_start_t)&b2, NULL); thrd_join(t3); diff --git a/test/releaseseq.c b/test/releaseseq.c index d3127f39..462a59f3 100644 --- a/test/releaseseq.c +++ b/test/releaseseq.c @@ -11,9 +11,11 @@ #include "stdatomic.h" atomic_int x; +int var = 0; static void a(void *obj) { + store_32(&var, 1); atomic_store_explicit(&x, 1, memory_order_release); atomic_store_explicit(&x, 42, memory_order_relaxed); } @@ -22,6 +24,7 @@ static void b(void *obj) { int r = atomic_load_explicit(&x, memory_order_acquire); printf("r = %u\n", r); + printf("load %d\n", load_32(&var)); } static void c(void *obj)