From 1830a3cd91f225bfe091408695be47b8964ead0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sa=C3=BAl=20Ibarra=20Corretg=C3=A9?= Date: Wed, 2 Jul 2014 00:13:29 +0200 Subject: [PATCH] Revert "test: make barrier test more rigorous" This reverts commit 6c6c9221679c6cc66ac30fbad5ce086658113ea3. It introduced a race condition which made tests fail on Linux and SunOS. Closes #1340 --- test/test-barrier.c | 29 ++++++----------------------- 1 file changed, 6 insertions(+), 23 deletions(-) diff --git a/test/test-barrier.c b/test/test-barrier.c index 25a55d6cf..dfd2dbdef 100644 --- a/test/test-barrier.c +++ b/test/test-barrier.c @@ -41,10 +41,6 @@ static void worker(void* arg) { uv_sleep(c->delay); c->worker_barrier_wait_rval = uv_barrier_wait(&c->barrier); - if (c->worker_barrier_wait_rval == 1) { - uv_barrier_destroy(&c->barrier); - ASSERT(c->main_barrier_wait_rval == 0); - } } @@ -53,21 +49,16 @@ TEST_IMPL(barrier_1) { worker_config wc; memset(&wc, 0, sizeof(wc)); - wc.main_barrier_wait_rval = -1; - wc.worker_barrier_wait_rval = -1; ASSERT(0 == uv_barrier_init(&wc.barrier, 2)); ASSERT(0 == uv_thread_create(&thread, worker, &wc)); uv_sleep(100); - wc.main_barrier_wait_rval = uv_barrier_wait(&wc.barrier); - if (wc.main_barrier_wait_rval == 1) { - uv_barrier_destroy(&wc.barrier); - ASSERT(wc.worker_barrier_wait_rval == 0); - } ASSERT(0 == uv_thread_join(&thread)); + uv_barrier_destroy(&wc.barrier); + ASSERT(1 == (wc.main_barrier_wait_rval ^ wc.worker_barrier_wait_rval)); return 0; @@ -80,19 +71,15 @@ TEST_IMPL(barrier_2) { memset(&wc, 0, sizeof(wc)); wc.delay = 100; - wc.main_barrier_wait_rval = -1; - wc.worker_barrier_wait_rval = -1; ASSERT(0 == uv_barrier_init(&wc.barrier, 2)); ASSERT(0 == uv_thread_create(&thread, worker, &wc)); wc.main_barrier_wait_rval = uv_barrier_wait(&wc.barrier); - if (wc.main_barrier_wait_rval == 1) { - uv_barrier_destroy(&wc.barrier); - ASSERT(wc.worker_barrier_wait_rval == 0); - } ASSERT(0 == uv_thread_join(&thread)); + uv_barrier_destroy(&wc.barrier); + ASSERT(1 == (wc.main_barrier_wait_rval ^ wc.worker_barrier_wait_rval)); return 0; @@ -104,19 +91,15 @@ TEST_IMPL(barrier_3) { worker_config wc; memset(&wc, 0, sizeof(wc)); - wc.main_barrier_wait_rval = -1; - wc.worker_barrier_wait_rval = -1; ASSERT(0 == uv_barrier_init(&wc.barrier, 2)); ASSERT(0 == uv_thread_create(&thread, worker, &wc)); wc.main_barrier_wait_rval = uv_barrier_wait(&wc.barrier); - if (wc.main_barrier_wait_rval == 1) { - uv_barrier_destroy(&wc.barrier); - ASSERT(wc.worker_barrier_wait_rval == 0); - } ASSERT(0 == uv_thread_join(&thread)); + uv_barrier_destroy(&wc.barrier); + ASSERT(1 == (wc.main_barrier_wait_rval ^ wc.worker_barrier_wait_rval)); return 0;