Add some tests

This commit is contained in:
Jonathan Behrens
2018-10-27 12:19:04 -04:00
parent 7eece4771b
commit 07d966dbb8

View File

@@ -541,7 +541,7 @@ impl<W: Write> BufWriter<W> {
/// ``` /// ```
#[unstable(feature = "bufreader_buffer", issue = "45323")] #[unstable(feature = "bufreader_buffer", issue = "45323")]
pub fn buffer(&self) -> &[u8] { pub fn buffer(&self) -> &[u8] {
&self.buf[..] &self.buf
} }
/// Unwraps this `BufWriter`, returning the underlying writer. /// Unwraps this `BufWriter`, returning the underlying writer.
@@ -984,31 +984,31 @@ mod tests {
let mut buf = [0, 0, 0]; let mut buf = [0, 0, 0];
let nread = reader.read(&mut buf); let nread = reader.read(&mut buf);
assert_eq!(nread.unwrap(), 3); assert_eq!(nread.unwrap(), 3);
let b: &[_] = &[5, 6, 7]; assert_eq!(buf, [5, 6, 7]);
assert_eq!(buf, b); assert_eq!(*reader.buffer(), []);
let mut buf = [0, 0]; let mut buf = [0, 0];
let nread = reader.read(&mut buf); let nread = reader.read(&mut buf);
assert_eq!(nread.unwrap(), 2); assert_eq!(nread.unwrap(), 2);
let b: &[_] = &[0, 1]; assert_eq!(buf, [0, 1]);
assert_eq!(buf, b); assert_eq!(*reader.buffer(), []);
let mut buf = [0]; let mut buf = [0];
let nread = reader.read(&mut buf); let nread = reader.read(&mut buf);
assert_eq!(nread.unwrap(), 1); assert_eq!(nread.unwrap(), 1);
let b: &[_] = &[2]; assert_eq!(buf, [2]);
assert_eq!(buf, b); assert_eq!(*reader.buffer(), [3]);
let mut buf = [0, 0, 0]; let mut buf = [0, 0, 0];
let nread = reader.read(&mut buf); let nread = reader.read(&mut buf);
assert_eq!(nread.unwrap(), 1); assert_eq!(nread.unwrap(), 1);
let b: &[_] = &[3, 0, 0]; assert_eq!(buf, [3, 0, 0]);
assert_eq!(buf, b); assert_eq!(*reader.buffer(), []);
let nread = reader.read(&mut buf); let nread = reader.read(&mut buf);
assert_eq!(nread.unwrap(), 1); assert_eq!(nread.unwrap(), 1);
let b: &[_] = &[4, 0, 0]; assert_eq!(buf, [4, 0, 0]);
assert_eq!(buf, b); assert_eq!(*reader.buffer(), []);
assert_eq!(reader.read(&mut buf).unwrap(), 0); assert_eq!(reader.read(&mut buf).unwrap(), 0);
} }
@@ -1097,31 +1097,40 @@ mod tests {
let mut writer = BufWriter::with_capacity(2, inner); let mut writer = BufWriter::with_capacity(2, inner);
writer.write(&[0, 1]).unwrap(); writer.write(&[0, 1]).unwrap();
assert_eq!(*writer.buffer(), []);
assert_eq!(*writer.get_ref(), [0, 1]); assert_eq!(*writer.get_ref(), [0, 1]);
writer.write(&[2]).unwrap(); writer.write(&[2]).unwrap();
assert_eq!(*writer.buffer(), [2]);
assert_eq!(*writer.get_ref(), [0, 1]); assert_eq!(*writer.get_ref(), [0, 1]);
writer.write(&[3]).unwrap(); writer.write(&[3]).unwrap();
assert_eq!(*writer.buffer(), [2, 3]);
assert_eq!(*writer.get_ref(), [0, 1]); assert_eq!(*writer.get_ref(), [0, 1]);
writer.flush().unwrap(); writer.flush().unwrap();
assert_eq!(*writer.buffer(), []);
assert_eq!(*writer.get_ref(), [0, 1, 2, 3]); assert_eq!(*writer.get_ref(), [0, 1, 2, 3]);
writer.write(&[4]).unwrap(); writer.write(&[4]).unwrap();
writer.write(&[5]).unwrap(); writer.write(&[5]).unwrap();
assert_eq!(*writer.buffer(), [4, 5]);
assert_eq!(*writer.get_ref(), [0, 1, 2, 3]); assert_eq!(*writer.get_ref(), [0, 1, 2, 3]);
writer.write(&[6]).unwrap(); writer.write(&[6]).unwrap();
assert_eq!(*writer.buffer(), [6]);
assert_eq!(*writer.get_ref(), [0, 1, 2, 3, 4, 5]); assert_eq!(*writer.get_ref(), [0, 1, 2, 3, 4, 5]);
writer.write(&[7, 8]).unwrap(); writer.write(&[7, 8]).unwrap();
assert_eq!(*writer.buffer(), []);
assert_eq!(*writer.get_ref(), [0, 1, 2, 3, 4, 5, 6, 7, 8]); assert_eq!(*writer.get_ref(), [0, 1, 2, 3, 4, 5, 6, 7, 8]);
writer.write(&[9, 10, 11]).unwrap(); writer.write(&[9, 10, 11]).unwrap();
assert_eq!(*writer.buffer(), []);
assert_eq!(*writer.get_ref(), [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]); assert_eq!(*writer.get_ref(), [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]);
writer.flush().unwrap(); writer.flush().unwrap();
assert_eq!(*writer.buffer(), []);
assert_eq!(*writer.get_ref(), [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]); assert_eq!(*writer.get_ref(), [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]);
} }