aboutsummaryrefslogtreecommitdiff
path: root/mesalib/src/util/u_atomic_test.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2015-02-22 14:31:16 +0100
committermarha <marha@users.sourceforge.net>2015-02-22 14:31:16 +0100
commitf1c2db43dcf35d2cf4715390bd2391c28e42a8c2 (patch)
tree46b537271afe0f6534231b1bd4cc4f91ae1fb446 /mesalib/src/util/u_atomic_test.c
parent5e5a48ff8cd08f123601cd0625ca62a86675aac9 (diff)
downloadvcxsrv-f1c2db43dcf35d2cf4715390bd2391c28e42a8c2.tar.gz
vcxsrv-f1c2db43dcf35d2cf4715390bd2391c28e42a8c2.tar.bz2
vcxsrv-f1c2db43dcf35d2cf4715390bd2391c28e42a8c2.zip
xwininfo fontconfig libX11 libXdmcp libfontenc libxcb libxcb/xcb-proto mesalib xserver xkeyboard-config mkfontscale git update 22 Feb 2015
xserver commit 3a06faf3fcdb7451125a46181f9152e8e59e9770 libxcb commit e3ec1f74637237ce500dfd0ca59f2e422da4e019 libxcb/xcb-proto commit 4c550465934164aab2449a125f75f4ca07816233 xkeyboard-config commit 26f344c93f8c6141e9233eb68088ba4fd56bc9ef libX11 commit c8e19b393defd53f046ddc2da3a16881221b3c34 libXdmcp commit 9f4cac7656b221ce2a8f97e7bd31e5e23126d001 libfontenc commit de1843aaf76015c9d99416f3122d169fe331b849 mkfontscale commit 87d628f8eec170ec13bb9feefb1ce05aed07d1d6 xwininfo commit 0c49f8f2bd56b1e77721e81030ea948386dcdf4e fontconfig commit d6d5adeb7940c0d0beb86489c2a1c2ce59e5c044 mesa commit 4359954d842caa2a9f8d4b50d70ecc789884b68b
Diffstat (limited to 'mesalib/src/util/u_atomic_test.c')
-rw-r--r--mesalib/src/util/u_atomic_test.c40
1 files changed, 30 insertions, 10 deletions
diff --git a/mesalib/src/util/u_atomic_test.c b/mesalib/src/util/u_atomic_test.c
index 4845e753e..939cfe445 100644
--- a/mesalib/src/util/u_atomic_test.c
+++ b/mesalib/src/util/u_atomic_test.c
@@ -37,8 +37,9 @@
#include "u_atomic.h"
-#define test_atomic_cmpxchg(type, ones) \
- static void test_atomic_cmpxchg_##type (void) { \
+/* Test only assignment-like operations, which are supported on all types */
+#define test_atomic_assign(type, ones) \
+ static void test_atomic_assign_##type (void) { \
type v, r; \
\
p_atomic_set(&v, ones); \
@@ -59,14 +60,33 @@
}
+/* Test arithmetic operations that are supported on 8 bits integer types */
+#define test_atomic_8bits(type, ones) \
+ test_atomic_assign(type, ones) \
+ \
+ static void test_atomic_8bits_##type (void) { \
+ type v, r; \
+ \
+ test_atomic_assign_##type(); \
+ \
+ v = 23; \
+ p_atomic_add(&v, 42); \
+ r = p_atomic_read(&v); \
+ assert(r == 65 && "p_atomic_add"); \
+ \
+ (void) r; \
+ }
+
+
+/* Test all operations */
#define test_atomic(type, ones) \
- test_atomic_cmpxchg(type, ones) \
+ test_atomic_8bits(type, ones) \
\
static void test_atomic_##type (void) { \
type v, r; \
bool b; \
\
- test_atomic_cmpxchg_##type(); \
+ test_atomic_8bits_##type(); \
\
v = 2; \
b = p_atomic_dec_zero(&v); \
@@ -112,9 +132,9 @@ test_atomic(uint32_t, UINT32_C(0xffffffff))
test_atomic(int64_t, INT64_C(-1))
test_atomic(uint64_t, UINT64_C(0xffffffffffffffff))
-test_atomic_cmpxchg(int8_t, INT8_C(-1))
-test_atomic_cmpxchg(uint8_t, UINT8_C(0xff))
-test_atomic_cmpxchg(bool, true)
+test_atomic_8bits(int8_t, INT8_C(-1))
+test_atomic_8bits(uint8_t, UINT8_C(0xff))
+test_atomic_assign(bool, true)
int
main()
@@ -129,9 +149,9 @@ main()
test_atomic_int64_t();
test_atomic_uint64_t();
- test_atomic_cmpxchg_int8_t();
- test_atomic_cmpxchg_uint8_t();
- test_atomic_cmpxchg_bool();
+ test_atomic_8bits_int8_t();
+ test_atomic_8bits_uint8_t();
+ test_atomic_assign_bool();
return 0;
}