@@ -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 ( 0 u , 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