From c7c79f8ff635211e4d3b2eac6a9d08a6e3604752 Mon Sep 17 00:00:00 2001 From: ticki Date: Fri, 9 Jun 2017 23:05:05 +0200 Subject: [PATCH] Get more simple tests with `conc::sync::Treiber`. --- conc/src/sync/treiber.rs | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/conc/src/sync/treiber.rs b/conc/src/sync/treiber.rs index 0de4114..f046b47 100644 --- a/conc/src/sync/treiber.rs +++ b/conc/src/sync/treiber.rs @@ -112,8 +112,9 @@ mod tests { use std::sync::Arc; #[test] - fn simple() { + fn simple1() { let stack = Treiber::new(); + stack.push(1); stack.push(200); stack.push(44); @@ -125,7 +126,30 @@ mod tests { } #[test] - fn single_thread() { + fn simple2() { + let stack = Treiber::new(); + + for _ in 0..16 { + stack.push(1); + stack.push(200); + stack.push(44); + + assert_eq!(*stack.pop().unwrap(), 44); + assert_eq!(*stack.pop().unwrap(), 200); + stack.push(20000); + + assert_eq!(*stack.pop().unwrap(), 20000); + assert_eq!(*stack.pop().unwrap(), 1); + + assert!(stack.pop().is_none()); + assert!(stack.pop().is_none()); + assert!(stack.pop().is_none()); + assert!(stack.pop().is_none()); + } + } + + #[test] + fn simple3() { let stack = Treiber::new(); for i in 0..10000 {