diff options
author | David Herrmann <dh.herrmann@gmail.com> | 2014-07-29 19:14:23 +0200 |
---|---|---|
committer | David Herrmann <dh.herrmann@gmail.com> | 2014-07-29 19:19:49 +0200 |
commit | 359017c1aec9596e9d3c4c19bd62d34a6f3366b8 (patch) | |
tree | 3a10629622bcdd5be8269ceaf4035a8aba9a0f3f /src/test | |
parent | f22bbd11dbfae4b7dd0606f6981d38d893ed4c1e (diff) |
barrier: fix race in test-code
The barrier_wait_next_twice* test-cases run:
Parent: Child:
set_alarm(10) sleep_for(1);
... set_alarm(1);
sleep_for(2) ...
Therefore, the parent exits after 2+ periods, the client's alarm fires
after 2+ periods. This race turns out to be lost by the child on other
machines, so avoid it by increasing the parent's sleep-interval to 4. This
way, the client has 2 periods to run the barrier test, which is far more
than enough.
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/test-barrier.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/test/test-barrier.c b/src/test/test-barrier.c index ac9dd04b99..36f27809ca 100644 --- a/src/test/test-barrier.c +++ b/src/test/test-barrier.c @@ -176,7 +176,7 @@ TEST_BARRIER(test_barrier_wait_next_twice, set_alarm(BASE_TIME * 10); assert_se(barrier_place(&b)); assert_se(barrier_place(&b)); - sleep_for(BASE_TIME * 2); + sleep_for(BASE_TIME * 4); }), TEST_BARRIER_WAIT_SUCCESS(pid2)); @@ -201,7 +201,7 @@ TEST_BARRIER(test_barrier_wait_next_twice_local, set_alarm(BASE_TIME * 10); assert_se(barrier_place(&b)); assert_se(barrier_place(&b)); - sleep_for(BASE_TIME * 2); + sleep_for(BASE_TIME * 4); }), TEST_BARRIER_WAIT_SUCCESS(pid2)); |