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-Tag: pldi2013~97^2~1^2~2 X-Git-Url: http://demsky.eecs.uci.edu/git/?p=model-checker.git;a=commitdiff_plain;h=7616e1626a8bdb735ed4f0b4da56f4816fc9cded 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 37433b1..f3ae9f4 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 d3127f3..462a59f 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)