]> git.lizzy.rs Git - rust.git/blobdiff - tests/run-pass/atomic.rs
Add test for atomic fences
[rust.git] / tests / run-pass / atomic.rs
index f0b8ec06b905c65b0952af28d15cad9393e28327..5872a496dbfa4bb1de2b0718f13f41f2d36d45f0 100644 (file)
@@ -1,9 +1,10 @@
-use std::sync::atomic::{AtomicBool, AtomicIsize, AtomicU64, Ordering::*};
+use std::sync::atomic::{fence, AtomicBool, AtomicIsize, AtomicU64, Ordering::*};
 
 fn main() {
     atomic_bool();
     atomic_isize();
     atomic_u64();
+    atomic_fences();
 }
 
 fn atomic_bool() {
@@ -57,6 +58,15 @@ fn atomic_u64() {
 
     ATOMIC.store(1, SeqCst);
     assert_eq!(ATOMIC.compare_exchange(0, 0x100, AcqRel, Acquire), Err(1));
-    assert_eq!(ATOMIC.compare_exchange_weak(1, 0x100, AcqRel, Acquire), Ok(1));
+    assert_eq!(
+        ATOMIC.compare_exchange_weak(1, 0x100, AcqRel, Acquire),
+        Ok(1)
+    );
     assert_eq!(ATOMIC.load(Relaxed), 0x100);
 }
+
+fn atomic_fences() {
+    fence(SeqCst);
+    fence(Release);
+    fence(Acquire);
+}