Skip to content

Commit

Permalink
Add tests for SizeHint implementations
Browse files Browse the repository at this point in the history
  • Loading branch information
Xavientois committed Jan 31, 2021
1 parent 96255f8 commit 389e638
Showing 1 changed file with 29 additions and 2 deletions.
31 changes: 29 additions & 2 deletions library/std/src/io/tests.rs
Expand Up @@ -204,8 +204,8 @@ fn bufreader_size_hint() {
let mut buf_reader = BufReader::new(&testdata[..]);
assert_eq!(buf_reader.buffer().len(), 0);

let buffer = buf_reader.fill_buf().unwrap();
let buffer_length = buffer.len();
let buffer_length = testdata.len();
buf_reader.fill_buf().unwrap();

// Check that size hint matches buffer contents
let mut buffered_bytes = buf_reader.bytes();
Expand All @@ -218,6 +218,33 @@ fn bufreader_size_hint() {
assert_eq!(lower_bound, buffer_length - 1);
}

#[test]
fn empty_size_hint() {
let size_hint = io::empty().bytes().size_hint();
assert_eq!(size_hint, (0, Some(0)));
}

#[test]
fn chain_empty_size_hint() {
let chain = io::empty().chain(io::empty());
let size_hint = chain.bytes().size_hint();
assert_eq!(size_hint, (0, Some(0)));
}

#[test]
fn chain_size_hint() {
let testdata = b"ABCDEFGHIJKL";
let mut buf_reader_1 = BufReader::new(&testdata[..6]);
let mut buf_reader_2 = BufReader::new(&testdata[6..]);

buf_reader_1.fill_buf().unwrap();
buf_reader_2.fill_buf().unwrap();

let chain = buf_reader_1.chain(buf_reader_2);
let size_hint = chain.bytes().size_hint();
assert_eq!(size_hint, (testdata.len(), None));
}

#[test]
fn chain_zero_length_read_is_not_eof() {
let a = b"A";
Expand Down

0 comments on commit 389e638

Please sign in to comment.