summaryrefslogtreecommitdiffstats
path: root/testsuites/smptests/smpatomic01
diff options
context:
space:
mode:
authorWeiY <wei.a.yang@gmail.com>2013-07-15 23:31:12 +0800
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-07-17 13:07:33 +0200
commit5186b55180b5404ecd1ad1ed70e73fb70ed15f27 (patch)
treebcc6ad8ff26e97d532d656e45917b9a08512ee68 /testsuites/smptests/smpatomic01
parentspatomic test case update (diff)
downloadrtems-5186b55180b5404ecd1ad1ed70e73fb70ed15f27.tar.bz2
smpatomic test case update
Diffstat (limited to 'testsuites/smptests/smpatomic01')
-rw-r--r--testsuites/smptests/smpatomic01/tasks.c33
1 files changed, 13 insertions, 20 deletions
diff --git a/testsuites/smptests/smpatomic01/tasks.c b/testsuites/smptests/smpatomic01/tasks.c
index 36bb431dca..28afad9d9f 100644
--- a/testsuites/smptests/smpatomic01/tasks.c
+++ b/testsuites/smptests/smpatomic01/tasks.c
@@ -18,20 +18,21 @@
#include <stdlib.h>
#include <rtems/rtems/atomic.h>
-#define TEST_REPEAT 200000
+#define TEST_REPEAT 1000
-#define ATOMIC_LOAD_NO_BARRIER(NAME, TYPE, cpuid, mem_bar) \
+#define ATOMIC_LOAD_NO_BARRIER(NAME, TYPE, R_TYPE, cpuid, 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); \
} \
- locked_printf("\nCPU%d _Atomic_Load_" #NAME ": SUCCESS\n", cpuid); \
+ locked_printf("\nCPU%d Atomic_Load_" #NAME ": SUCCESS\n", cpuid); \
}
rtems_task Test_task(
@@ -51,22 +52,14 @@ rtems_task Test_task(
/* Print that the task is up and running. */
/* test relaxed barrier */
- ATOMIC_LOAD_NO_BARRIER(int, Int, cpu_num, ATOMIC_RELAXED_BARRIER);
+ ATOMIC_LOAD_NO_BARRIER(uint, Uint, uint_fast32_t, cpu_num, ATOMIC_ORDER_RELAXED);
- ATOMIC_LOAD_NO_BARRIER(long, Long, cpu_num, ATOMIC_RELAXED_BARRIER);
-
- ATOMIC_LOAD_NO_BARRIER(ptr, Pointer, cpu_num, ATOMIC_RELAXED_BARRIER);
-
- ATOMIC_LOAD_NO_BARRIER(32, Int32, cpu_num, ATOMIC_RELAXED_BARRIER);
+ ATOMIC_LOAD_NO_BARRIER(ptr, Pointer, uintptr_t, cpu_num, ATOMIC_ORDER_RELAXED);
/* test acquire barrier */
- ATOMIC_LOAD_NO_BARRIER(int, Int, cpu_num, ATOMIC_ACQUIRE_BARRIER);
-
- ATOMIC_LOAD_NO_BARRIER(long, Long, cpu_num, ATOMIC_ACQUIRE_BARRIER);
-
- ATOMIC_LOAD_NO_BARRIER(ptr, Pointer, cpu_num, ATOMIC_ACQUIRE_BARRIER);
+ ATOMIC_LOAD_NO_BARRIER(uint, Uint, uint_fast32_t, cpu_num, ATOMIC_ORDER_ACQUIRE);
- ATOMIC_LOAD_NO_BARRIER(32, Int32, cpu_num, ATOMIC_ACQUIRE_BARRIER);
+ ATOMIC_LOAD_NO_BARRIER(ptr, Pointer, unsigned long, cpu_num, ATOMIC_ORDER_ACQUIRE);
// ATOMIC_LOAD_NO_BARRIER(64, cpu_num);