Merge branch 'master' into urcu/ht-shrink
[urcu.git] / tests / test_uatomic.c
index 6c11a2dfe6271d423fd918da26633f9891119e5d..692060bcdf175763e2290c6c207d7d66366928c9 100644 (file)
@@ -1,19 +1,10 @@
 #include <stdio.h>
 #include <assert.h>
-#include <urcu/arch_uatomic.h>
-
-#if (defined(__i386__) || defined(__x86_64__))
-#define HAS_ATOMIC_BYTE
-#define HAS_ATOMIC_SHORT
-#endif
+#include <urcu/uatomic.h>
 
 struct testvals {
-#ifdef HAS_ATOMIC_BYTE
        unsigned char c;
-#endif
-#ifdef HAS_ATOMIC_SHORT
        unsigned short s;
-#endif
        unsigned int i;
        unsigned long l;
 };
@@ -42,20 +33,24 @@ do {                                                \
        assert(uatomic_read(ptr) == 23);                \
        uatomic_dec(ptr);                       \
        assert(uatomic_read(ptr) == 22);                \
-       v = uatomic_add_return(ptr, 100);       \
-       assert(v == 122);                       \
+       v = uatomic_add_return(ptr, 74);        \
+       assert(v == 96);                        \
+       assert(uatomic_read(ptr) == 96);        \
+       uatomic_or(ptr, 58);                    \
        assert(uatomic_read(ptr) == 122);       \
        v = uatomic_sub_return(ptr, 1);         \
        assert(v == 121);                       \
        assert(uatomic_read(ptr) == 121);       \
+       uatomic_and(ptr, 129);                  \
+       assert(uatomic_read(ptr) == 1);         \
 } while (0)
 
 int main(int argc, char **argv)
 {
-#ifdef HAS_ATOMIC_BYTE
+#ifdef UATOMIC_HAS_ATOMIC_BYTE
        do_test(&vals.c);
 #endif
-#ifdef HAS_ATOMIC_SHORT
+#ifdef UATOMIC_HAS_ATOMIC_SHORT
        do_test(&vals.s);
 #endif
        do_test(&vals.i);
This page took 0.032691 seconds and 4 git commands to generate.