Mesa (master): util/u_atomic: Test p_atomic_add() for 8bit integers.
Jose Fonseca
jrfonseca at kemper.freedesktop.org
Thu Feb 12 19:38:13 UTC 2015
Module: Mesa
Branch: master
Commit: d2438f5920b95a880e9146882a58bf37ec57bad5
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d2438f5920b95a880e9146882a58bf37ec57bad5
Author: Jose Fonseca <jfonseca at vmware.com>
Date: Wed Feb 11 15:21:25 2015 +0000
util/u_atomic: Test p_atomic_add() for 8bit integers.
Reviewed-by: Brian Paul <brianp at vmware.com>
Reviewed-by: Roland Scheidegger <sroland at vmware.com>
---
src/util/u_atomic_test.c | 32 +++++++++++++++++---------------
1 file changed, 17 insertions(+), 15 deletions(-)
diff --git a/src/util/u_atomic_test.c b/src/util/u_atomic_test.c
index c506275..8bddf8d 100644
--- a/src/util/u_atomic_test.c
+++ b/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 operations that are supported for all types, including 8 bits types */
+#define test_atomic_8bits(type, ones) \
+ static void test_atomic_8bits_##type (void) { \
type v, r; \
\
p_atomic_set(&v, ones); \
@@ -55,18 +56,24 @@
assert(v == 0 && "p_atomic_cmpxchg"); \
assert(r == ones && "p_atomic_cmpxchg"); \
\
+ v = 23; \
+ p_atomic_add(&v, 42); \
+ r = p_atomic_read(&v); \
+ assert(r == 65 && "p_atomic_add"); \
+ \
(void) r; \
}
+/* Test operations that are not supported for 8 bits types */
#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); \
@@ -97,11 +104,6 @@
assert(v == ones && "p_atomic_dec_return"); \
assert(r == v && "p_atomic_dec_return"); \
\
- v = 23; \
- p_atomic_add(&v, 42); \
- r = p_atomic_read(&v); \
- assert(r == 65 && "p_atomic_add"); \
- \
(void) r; \
(void) b; \
}
@@ -117,9 +119,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_8bits(bool, true)
int
main()
@@ -134,9 +136,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_8bits_bool();
return 0;
}
More information about the mesa-commit
mailing list