This commit is contained in:
DrMeepster
2021-01-17 22:28:18 -08:00
parent 3802025f40
commit 98c6200b16
18 changed files with 772 additions and 294 deletions

View File

@@ -1,7 +1,8 @@
use super::{repeat, Cursor, SeekFrom};
use super::{repeat, Cursor, ReadBuf, SeekFrom};
use crate::cmp::{self, min};
use crate::io::{self, IoSlice, IoSliceMut};
use crate::io::{BufRead, BufReader, Read, Seek, Write};
use crate::mem::MaybeUninit;
use crate::ops::Deref;
#[test]
@@ -156,6 +157,28 @@ fn read_exact_slice() {
assert_eq!(c, b"9");
}
#[test]
fn read_buf_exact() {
let mut buf = [0; 4];
let mut buf = ReadBuf::new(&mut buf);
let mut c = Cursor::new(&b""[..]);
assert_eq!(c.read_buf_exact(&mut buf).unwrap_err().kind(), io::ErrorKind::UnexpectedEof);
let mut c = Cursor::new(&b"123456789"[..]);
c.read_buf_exact(&mut buf).unwrap();
assert_eq!(buf.filled(), b"1234");
buf.clear();
c.read_buf_exact(&mut buf).unwrap();
assert_eq!(buf.filled(), b"5678");
buf.clear();
assert_eq!(c.read_buf_exact(&mut buf).unwrap_err().kind(), io::ErrorKind::UnexpectedEof);
}
#[test]
fn take_eof() {
struct R;
@@ -559,3 +582,23 @@ fn test_write_all_vectored() {
}
}
}
#[bench]
fn bench_take_read(b: &mut test::Bencher) {
b.iter(|| {
let mut buf = [0; 64];
[255; 128].take(64).read(&mut buf).unwrap();
});
}
#[bench]
fn bench_take_read_buf(b: &mut test::Bencher) {
b.iter(|| {
let mut buf = [MaybeUninit::uninit(); 64];
let mut rbuf = ReadBuf::uninit(&mut buf);
[255; 128].take(64).read_buf(&mut rbuf).unwrap();
});
}