From 9533e27f44b21eb331188074771610eb9dae661b Mon Sep 17 00:00:00 2001 From: Jorge Aparicio <jorge@japaric.io> Date: Wed, 8 Nov 2017 22:51:55 +0100 Subject: [PATCH] test two consecutive operations --- tests/tsan.rs | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/tests/tsan.rs b/tests/tsan.rs index edee901..6685bd2 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(); + }); +} -- GitLab