aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/runner.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/runner.py b/tests/runner.py
index 3650c667..d0056400 100644
--- a/tests/runner.py
+++ b/tests/runner.py
@@ -3820,6 +3820,34 @@ def process(filename):
self.do_run(src, expected)
CORRECT_SIGNS = 0
+ def test_atomic_builtins(self): # XXX TODO
+ src = '''
+ type __sync_fetch_and_add (type *ptr, type value, ...)
+ type __sync_fetch_and_sub (type *ptr, type value, ...)
+ type __sync_fetch_and_or (type *ptr, type value, ...)
+ type __sync_fetch_and_and (type *ptr, type value, ...)
+ type __sync_fetch_and_xor (type *ptr, type value, ...)
+ type __sync_fetch_and_nand (type *ptr, type value, ...)
+
+ type __sync_add_and_fetch (type *ptr, type value, ...)
+ type __sync_sub_and_fetch (type *ptr, type value, ...)
+ type __sync_or_and_fetch (type *ptr, type value, ...)
+ type __sync_and_and_fetch (type *ptr, type value, ...)
+ type __sync_xor_and_fetch (type *ptr, type value, ...)
+ type __sync_nand_and_fetch (type *ptr, type value, ...)
+
+ bool __sync_bool_compare_and_swap (type *ptr, type oldval type newval, ...)
+ type __sync_val_compare_and_swap (type *ptr, type oldval type newval, ...)
+
+ __sync_synchronize (...)
+
+ type __sync_lock_test_and_set (type *ptr, type value, ...)
+
+ void __sync_lock_release (type *ptr, ...)
+ '''
+
+ self.do_run(src, 'hello world\n77.\n',
+
# libc++ tests
def test_iostream(self):