From ffb8a2a00a75e2ffe77872cfb48b69dc9d007952 Mon Sep 17 00:00:00 2001 From: Patrick Pelissier Date: Sun, 18 Feb 2018 19:18:40 +0100 Subject: [PATCH] Improve test suite (Test fails randomly) --- tests/test-mgenint.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/tests/test-mgenint.c b/tests/test-mgenint.c index 0ee06d29..a3527938 100644 --- a/tests/test-mgenint.c +++ b/tests/test-mgenint.c @@ -98,6 +98,31 @@ static void test2(size_t n) genint_init(global, n); } +static void conso2(void *p) +{ + size_t n = *(size_t*)p; + for(int i = 0; i < 1000000; i++) { + unsigned int j = genint_pop(global); + assert ( j != -1U); + assert (j < n); + genint_push(global, j); + } +} + +static void test3(size_t n) +{ + m_thread_t idx[n]; + + genint_init(global, n); + for(size_t i = 0; i < n; i++) { + m_thread_create (idx[i], conso2, (void*)&n); + } + for(size_t i = 0; i < n;i++) { + m_thread_join(idx[i]); + } + genint_init(global, n); +} + int main(void) { for(size_t n = 1; n < MAX_N; n++) { @@ -106,5 +131,8 @@ int main(void) for(size_t n = 1; n < MAX_N; n+=17) { test2(n); } + for(size_t n = 2; n < 6; n++) { + test3(n); + } exit(0); }