@@ -607,17 +607,61 @@ mod test {
607
607
assert_eq!(buf.as_slice(), &[7, 8, 6]);
608
608
}
609
609
610
- #[bench]
611
- fn bench_mem_writer(b: &mut Bencher) {
610
+ fn do_bench_mem_writer(b: &mut Bencher, times: uint, len: uint) {
611
+ let src: Vec<u8> = Vec::from_elem(len, 5);
612
+
612
613
b.iter(|| {
613
614
let mut wr = MemWriter::new();
614
- for _i in range(0u, 10 ) {
615
- wr.write([5, .. 10] ).unwrap();
615
+ for _ in range(0, times ) {
616
+ wr.write(src.as_slice() ).unwrap();
616
617
}
617
- assert_eq!(wr.unwrap().as_slice(), [5, .. 100].as_slice());
618
+
619
+ let v = wr.unwrap();
620
+ assert_eq!(v.len(), times * len);
621
+ assert!(v.iter().all(|x| *x == 5));
618
622
});
619
623
}
620
624
625
+ #[bench]
626
+ fn bench_mem_writer_001_0000(b: &mut Bencher) {
627
+ do_bench_mem_writer(b, 1, 0)
628
+ }
629
+
630
+ #[bench]
631
+ fn bench_mem_writer_001_0010(b: &mut Bencher) {
632
+ do_bench_mem_writer(b, 1, 10)
633
+ }
634
+
635
+ #[bench]
636
+ fn bench_mem_writer_001_0100(b: &mut Bencher) {
637
+ do_bench_mem_writer(b, 1, 100)
638
+ }
639
+
640
+ #[bench]
641
+ fn bench_mem_writer_001_1000(b: &mut Bencher) {
642
+ do_bench_mem_writer(b, 1, 1000)
643
+ }
644
+
645
+ #[bench]
646
+ fn bench_mem_writer_100_0000(b: &mut Bencher) {
647
+ do_bench_mem_writer(b, 100, 0)
648
+ }
649
+
650
+ #[bench]
651
+ fn bench_mem_writer_100_0010(b: &mut Bencher) {
652
+ do_bench_mem_writer(b, 100, 10)
653
+ }
654
+
655
+ #[bench]
656
+ fn bench_mem_writer_100_0100(b: &mut Bencher) {
657
+ do_bench_mem_writer(b, 100, 100)
658
+ }
659
+
660
+ #[bench]
661
+ fn bench_mem_writer_100_1000(b: &mut Bencher) {
662
+ do_bench_mem_writer(b, 100, 1000)
663
+ }
664
+
621
665
#[bench]
622
666
fn bench_mem_reader(b: &mut Bencher) {
623
667
b.iter(|| {
0 commit comments