@@ -351,6 +351,27 @@ mod test {
351
351
use super :: * ;
352
352
use io;
353
353
use super :: super :: mem:: { MemReader , MemWriter } ;
354
+ use Harness = extra:: test:: BenchHarness ;
355
+
356
+ /// A type, free to create, primarily intended for benchmarking creation of wrappers that, just
357
+ /// for construction, don't need a Reader/Writer that does anything useful. Is equivalent to
358
+ /// `/dev/null` in semantics.
359
+ #[ deriving( Clone , Eq , Ord ) ]
360
+ pub struct NullStream ;
361
+
362
+ impl Reader for NullStream {
363
+ fn read ( & mut self , _: & mut [ u8 ] ) -> Option < uint > {
364
+ None
365
+ }
366
+
367
+ fn eof ( & mut self ) -> bool {
368
+ true
369
+ }
370
+ }
371
+
372
+ impl Writer for NullStream {
373
+ fn write ( & mut self , _: & [ u8 ] ) { }
374
+ }
354
375
355
376
#[ test]
356
377
fn test_buffered_reader ( ) {
@@ -470,4 +491,25 @@ mod test {
470
491
writer. flush ( ) ;
471
492
assert_eq ! ( * writer. inner_ref( ) . inner_ref( ) , ~[ 0 , 1 , 0 , '\n' as u8 , 1 ] ) ;
472
493
}
494
+
495
+ #[ bench]
496
+ fn bench_buffered_reader ( bh : & mut Harness ) {
497
+ do bh. iter {
498
+ BufferedReader :: new ( NullStream ) ;
499
+ }
500
+ }
501
+
502
+ #[ bench]
503
+ fn bench_buffered_writer ( bh : & mut Harness ) {
504
+ do bh. iter {
505
+ BufferedWriter :: new ( NullStream ) ;
506
+ }
507
+ }
508
+
509
+ #[ bench]
510
+ fn bench_buffered_stream ( bh : & mut Harness ) {
511
+ do bh. iter {
512
+ BufferedStream :: new ( NullStream ) ;
513
+ }
514
+ }
473
515
}
0 commit comments