about summary refs log tree commit diff
diff options
context:
space:
mode:
authorColin Sherratt <colin.sherratt@gmail.com>2014-11-10 21:57:52 -0500
committerColin Sherratt <colin.sherratt@gmail.com>2014-11-14 03:41:07 -0500
commit5e549d8c3c6b69fea8cbbadf8028dc4fa62bdbfb (patch)
tree9a482c012ef7babe16a2993e9c65d9643977edf5
parent4cae9add8c9471126aa405cacecac2623232083a (diff)
downloadrust-5e549d8c3c6b69fea8cbbadf8028dc4fa62bdbfb.tar.gz
rust-5e549d8c3c6b69fea8cbbadf8028dc4fa62bdbfb.zip
Manually reset the ringbuffer before or after the ringbuffer push/pop tests.
-rw-r--r--src/libcollections/ring_buf.rs42
1 files changed, 25 insertions, 17 deletions
diff --git a/src/libcollections/ring_buf.rs b/src/libcollections/ring_buf.rs
index f08c5334000..1024a2828b3 100644
--- a/src/libcollections/ring_buf.rs
+++ b/src/libcollections/ring_buf.rs
@@ -209,7 +209,7 @@ impl<T> RingBuf<T> {
         assert!(i < self.len());
         assert!(j < self.len());
         let ri = wrap_index(self.tail + i, self.cap);
-        let rj = wrap_index(self.tail + j, self.cap);;
+        let rj = wrap_index(self.tail + j, self.cap);
         unsafe {
             ptr::swap(self.ptr.offset(ri as int), self.ptr.offset(rj as int))
         }
@@ -972,53 +972,58 @@ mod tests {
     #[bench]
     fn bench_new(b: &mut test::Bencher) {
         b.iter(|| {
-            let _: RingBuf<u64> = RingBuf::new();
+            let ring: RingBuf<u64> = RingBuf::new();
+            test::black_box(ring);
         })
     }
 
     #[bench]
     fn bench_push_back_100(b: &mut test::Bencher) {
-        let mut deq = RingBuf::with_capacity(100);
+        let mut deq = RingBuf::with_capacity(101);
         b.iter(|| {
             for i in range(0i, 100) {
                 deq.push_back(i);
             }
-            deq.clear();
+            deq.head = 0;
+            deq.tail = 0;
         })
     }
 
     #[bench]
     fn bench_push_front_100(b: &mut test::Bencher) {
-        let mut deq = RingBuf::with_capacity(100);
+        let mut deq = RingBuf::with_capacity(101);
         b.iter(|| {
             for i in range(0i, 100) {
                 deq.push_front(i);
             }
-            deq.clear();
+            deq.head = 0;
+            deq.tail = 0;
         })
     }
 
     #[bench]
-    fn bench_pop_100(b: &mut test::Bencher) {
-        let mut deq = RingBuf::with_capacity(100);
+    fn bench_pop_back_100(b: &mut test::Bencher) {
+        let mut deq: RingBuf<int> = RingBuf::with_capacity(101);
 
         b.iter(|| {
-            for i in range(0i, 100) {
-                deq.push_back(i);
+            deq.head = 100;
+            deq.tail = 0;
+            while !deq.is_empty() {
+                test::black_box(deq.pop_back());
             }
-            while None != deq.pop_back() {}
         })
     }
 
     #[bench]
     fn bench_pop_front_100(b: &mut test::Bencher) {
-        let mut deq = RingBuf::with_capacity(100);
+        let mut deq: RingBuf<int> = RingBuf::with_capacity(101);
 
         b.iter(|| {
-            for i in range(0i, 100) {
-                deq.push_back(i);
+            deq.head = 100;
+            deq.tail = 0;
+            while !deq.is_empty() {
+                test::black_box(deq.pop_front());
             }
-            while None != deq.pop_front() {}
         })
     }
 
@@ -1029,6 +1034,7 @@ mod tests {
             for i in range(0i, 1025) {
                 deq.push_front(i);
             }
+            test::black_box(deq);
         })
     }
 
@@ -1041,7 +1047,7 @@ mod tests {
             for &i in ring.iter() {
                 sum += i;
             }
-            sum
+            test::black_box(sum);
         })
     }
 
@@ -1050,9 +1056,11 @@ mod tests {
         let mut ring: RingBuf<int> = range(0i, 1000).collect();
 
         b.iter(|| {
+            let mut sum = 0;
             for i in ring.iter_mut() {
-                *i += 1;
+                sum += *i;
             }
+            test::black_box(sum);
         })
     }