auto merge of #10441 : cmr/rust/bench_bufferedstream, r=alexcrichton
https://github.com/mozilla/rust/pull/10424 did optimizations without adding a way to measure their effect and ensure no regressions. This fixes that.
This commit is contained in:
commit
825b127d47
1 changed files with 42 additions and 0 deletions
|
@ -351,6 +351,27 @@ mod test {
|
|||
use super::*;
|
||||
use io;
|
||||
use super::super::mem::{MemReader, MemWriter};
|
||||
use Harness = extra::test::BenchHarness;
|
||||
|
||||
/// A type, free to create, primarily intended for benchmarking creation of wrappers that, just
|
||||
/// for construction, don't need a Reader/Writer that does anything useful. Is equivalent to
|
||||
/// `/dev/null` in semantics.
|
||||
#[deriving(Clone,Eq,Ord)]
|
||||
pub struct NullStream;
|
||||
|
||||
impl Reader for NullStream {
|
||||
fn read(&mut self, _: &mut [u8]) -> Option<uint> {
|
||||
None
|
||||
}
|
||||
|
||||
fn eof(&mut self) -> bool {
|
||||
true
|
||||
}
|
||||
}
|
||||
|
||||
impl Writer for NullStream {
|
||||
fn write(&mut self, _: &[u8]) { }
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_buffered_reader() {
|
||||
|
@ -470,4 +491,25 @@ mod test {
|
|||
writer.flush();
|
||||
assert_eq!(*writer.inner_ref().inner_ref(), ~[0, 1, 0, '\n' as u8, 1]);
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn bench_buffered_reader(bh: &mut Harness) {
|
||||
do bh.iter {
|
||||
BufferedReader::new(NullStream);
|
||||
}
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn bench_buffered_writer(bh: &mut Harness) {
|
||||
do bh.iter {
|
||||
BufferedWriter::new(NullStream);
|
||||
}
|
||||
}
|
||||
|
||||
#[bench]
|
||||
fn bench_buffered_stream(bh: &mut Harness) {
|
||||
do bh.iter {
|
||||
BufferedStream::new(NullStream);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue