Skip to content

Commit 5e549d8

Browse files
committed
Manually reset the ringbuffer before or after the ringbuffer push/pop tests.
1 parent 4cae9ad commit 5e549d8

File tree

1 file changed

+25
-17
lines changed

1 file changed

+25
-17
lines changed

src/libcollections/ring_buf.rs

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ impl<T> RingBuf<T> {
209209
assert!(i < self.len());
210210
assert!(j < self.len());
211211
let ri = wrap_index(self.tail + i, self.cap);
212-
let rj = wrap_index(self.tail + j, self.cap);;
212+
let rj = wrap_index(self.tail + j, self.cap);
213213
unsafe {
214214
ptr::swap(self.ptr.offset(ri as int), self.ptr.offset(rj as int))
215215
}
@@ -972,53 +972,58 @@ mod tests {
972972
#[bench]
973973
fn bench_new(b: &mut test::Bencher) {
974974
b.iter(|| {
975-
let _: RingBuf<u64> = RingBuf::new();
975+
let ring: RingBuf<u64> = RingBuf::new();
976+
test::black_box(ring);
976977
})
977978
}
978979

979980
#[bench]
980981
fn bench_push_back_100(b: &mut test::Bencher) {
981-
let mut deq = RingBuf::with_capacity(100);
982+
let mut deq = RingBuf::with_capacity(101);
982983
b.iter(|| {
983984
for i in range(0i, 100) {
984985
deq.push_back(i);
985986
}
986-
deq.clear();
987+
deq.head = 0;
988+
deq.tail = 0;
987989
})
988990
}
989991

990992
#[bench]
991993
fn bench_push_front_100(b: &mut test::Bencher) {
992-
let mut deq = RingBuf::with_capacity(100);
994+
let mut deq = RingBuf::with_capacity(101);
993995
b.iter(|| {
994996
for i in range(0i, 100) {
995997
deq.push_front(i);
996998
}
997-
deq.clear();
999+
deq.head = 0;
1000+
deq.tail = 0;
9981001
})
9991002
}
10001003

10011004
#[bench]
1002-
fn bench_pop_100(b: &mut test::Bencher) {
1003-
let mut deq = RingBuf::with_capacity(100);
1005+
fn bench_pop_back_100(b: &mut test::Bencher) {
1006+
let mut deq: RingBuf<int> = RingBuf::with_capacity(101);
10041007

10051008
b.iter(|| {
1006-
for i in range(0i, 100) {
1007-
deq.push_back(i);
1009+
deq.head = 100;
1010+
deq.tail = 0;
1011+
while !deq.is_empty() {
1012+
test::black_box(deq.pop_back());
10081013
}
1009-
while None != deq.pop_back() {}
10101014
})
10111015
}
10121016

10131017
#[bench]
10141018
fn bench_pop_front_100(b: &mut test::Bencher) {
1015-
let mut deq = RingBuf::with_capacity(100);
1019+
let mut deq: RingBuf<int> = RingBuf::with_capacity(101);
10161020

10171021
b.iter(|| {
1018-
for i in range(0i, 100) {
1019-
deq.push_back(i);
1022+
deq.head = 100;
1023+
deq.tail = 0;
1024+
while !deq.is_empty() {
1025+
test::black_box(deq.pop_front());
10201026
}
1021-
while None != deq.pop_front() {}
10221027
})
10231028
}
10241029

@@ -1029,6 +1034,7 @@ mod tests {
10291034
for i in range(0i, 1025) {
10301035
deq.push_front(i);
10311036
}
1037+
test::black_box(deq);
10321038
})
10331039
}
10341040

@@ -1041,7 +1047,7 @@ mod tests {
10411047
for &i in ring.iter() {
10421048
sum += i;
10431049
}
1044-
sum
1050+
test::black_box(sum);
10451051
})
10461052
}
10471053

@@ -1050,9 +1056,11 @@ mod tests {
10501056
let mut ring: RingBuf<int> = range(0i, 1000).collect();
10511057

10521058
b.iter(|| {
1059+
let mut sum = 0;
10531060
for i in ring.iter_mut() {
1054-
*i += 1;
1061+
sum += *i;
10551062
}
1063+
test::black_box(sum);
10561064
})
10571065
}
10581066

0 commit comments

Comments
 (0)