From a3e9c228f9e33a2e2a16e985f3b330a1325ae3f6 Mon Sep 17 00:00:00 2001 From: WeiY Date: Mon, 15 Jul 2013 23:31:11 +0800 Subject: spatomic test case update --- testsuites/sptests/spatomic01/tasks.c | 33 +++++++++++++-------------------- 1 file changed, 13 insertions(+), 20 deletions(-) (limited to 'testsuites/sptests/spatomic01') diff --git a/testsuites/sptests/spatomic01/tasks.c b/testsuites/sptests/spatomic01/tasks.c index c75a94d679..9392a5b612 100644 --- a/testsuites/sptests/spatomic01/tasks.c +++ b/testsuites/sptests/spatomic01/tasks.c @@ -18,20 +18,21 @@ #include #include -#define TEST_REPEAT 200000 +#define TEST_REPEAT 1000 -#define ATOMIC_LOAD_NO_BARRIER(NAME, TYPE, task_id, mem_bar) \ +#define ATOMIC_LOAD_NO_BARRIER(NAME, TYPE, R_TYPE, task_id, mem_bar) \ { \ - Atomic_##TYPE t = (Atomic_##TYPE)-1, a = 0; \ + Atomic_##TYPE t; \ + R_TYPE a; \ + R_TYPE b; \ unsigned int i; \ - a = _Atomic_Load_##NAME(&t, mem_bar); \ - rtems_test_assert(a == t); \ for (i = 0; i < TEST_REPEAT; i++){ \ - t = (Atomic_##TYPE)rand(); \ + b = (R_TYPE)rand(); \ + atomic_init(&t, b); \ a = _Atomic_Load_##NAME(&t, mem_bar); \ - rtems_test_assert(a == t); \ + rtems_test_assert(a == b); \ } \ - printf("\ntask%d: _Atomic_Load_" #NAME ": SUCCESS\n", (unsigned int)task_id); \ + printf("\ntask%d: Atomic_Load_" #NAME ": SUCCESS\n", (unsigned int)task_id); \ } rtems_task Test_task( @@ -48,22 +49,14 @@ rtems_task Test_task( /* Print that the task is up and running. */ /* test relaxed barrier */ - ATOMIC_LOAD_NO_BARRIER(int, Int, argument, ATOMIC_RELAXED_BARRIER); + ATOMIC_LOAD_NO_BARRIER(uint, Uint, uint_fast32_t, argument, ATOMIC_ORDER_RELAXED); - ATOMIC_LOAD_NO_BARRIER(long, Long, argument, ATOMIC_RELAXED_BARRIER); - - ATOMIC_LOAD_NO_BARRIER(ptr, Pointer, argument, ATOMIC_RELAXED_BARRIER); - - ATOMIC_LOAD_NO_BARRIER(32, Int32, argument, ATOMIC_RELAXED_BARRIER); + ATOMIC_LOAD_NO_BARRIER(ptr, Pointer, uintptr_t, argument, ATOMIC_ORDER_RELAXED); /* test acquire barrier */ - ATOMIC_LOAD_NO_BARRIER(int, Int, argument, ATOMIC_ACQUIRE_BARRIER); - - ATOMIC_LOAD_NO_BARRIER(long, Long, argument, ATOMIC_ACQUIRE_BARRIER); - - ATOMIC_LOAD_NO_BARRIER(ptr, Pointer, argument, ATOMIC_ACQUIRE_BARRIER); + ATOMIC_LOAD_NO_BARRIER(uint, Uint, uint_fast32_t, argument, ATOMIC_ORDER_ACQUIRE); - ATOMIC_LOAD_NO_BARRIER(32, Int32, argument, ATOMIC_ACQUIRE_BARRIER); + ATOMIC_LOAD_NO_BARRIER(ptr, Pointer, uintptr_t, argument, ATOMIC_ORDER_ACQUIRE); /* Set the flag that the task is up and running */ TaskRan[argument] = true; -- cgit v1.2.3