diff --git a/tests/tsan.rs b/tests/tsan.rs
index edee90111872fb6593d58d27a106ed09f00ed50f..6685bd234c82a2b6da1c7e3927968ddade3d2ebb 100644
--- a/tests/tsan.rs
+++ b/tests/tsan.rs
@@ -5,7 +5,7 @@ use std::thread;
 use heapless::RingBuffer;
 
 #[test]
-fn tsan() {
+fn once() {
     static mut RB: RingBuffer<i32, [i32; 4]> = RingBuffer::new();
 
     unsafe { RB.split() }.0.enqueue(0).unwrap();
@@ -18,3 +18,21 @@ fn tsan() {
         unsafe { RB.split() }.1.dequeue().unwrap();
     });
 }
+
+#[test]
+fn twice() {
+    static mut RB: RingBuffer<i32, [i32; 8]> = RingBuffer::new();
+
+    unsafe { RB.split() }.0.enqueue(0).unwrap();
+    unsafe { RB.split() }.0.enqueue(1).unwrap();
+
+    thread::spawn(|| {
+        unsafe { RB.split() }.0.enqueue(2).unwrap();
+        unsafe { RB.split() }.0.enqueue(3).unwrap();
+    });
+
+    thread::spawn(|| {
+        unsafe { RB.split() }.1.dequeue().unwrap();
+        unsafe { RB.split() }.1.dequeue().unwrap();
+    });
+}