aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorGravatar Sean McArthur <sean@seanmonstar.com> 2019-06-06 14:05:16 -0700
committerGravatar Sean McArthur <sean@seanmonstar.com> 2019-06-06 14:08:29 -0700
commit5759211ff81c3601015a0c0dad96f9366965446c (patch)
treef35a46ed391a2dedf99e0e4ff5181a559ffdf50c /tests
parent60aceba2bb1dfacbca395832d2f36eabd517fcb1 (diff)
parentd43e283e5ed520e54df2428f2cf9a7c13c79ff49 (diff)
downloadbytes-5759211ff81c3601015a0c0dad96f9366965446c.tar.gz
bytes-5759211ff81c3601015a0c0dad96f9366965446c.tar.zst
bytes-5759211ff81c3601015a0c0dad96f9366965446c.zip
Merge branch 'v0.4.x' into uplift-0.4-commits
Diffstat (limited to 'tests')
-rw-r--r--tests/test_bytes.rs63
-rw-r--r--tests/test_reader.rs28
2 files changed, 84 insertions, 7 deletions
diff --git a/tests/test_bytes.rs b/tests/test_bytes.rs
index 9aff072..5eaedd3 100644
--- a/tests/test_bytes.rs
+++ b/tests/test_bytes.rs
@@ -258,15 +258,10 @@ fn split_to_oob_mut() {
}
#[test]
+#[should_panic]
fn split_to_uninitialized() {
let mut bytes = BytesMut::with_capacity(1024);
- let other = bytes.split_to(128);
-
- assert_eq!(bytes.len(), 0);
- assert_eq!(bytes.capacity(), 896);
-
- assert_eq!(other.len(), 0);
- assert_eq!(other.capacity(), 128);
+ let _other = bytes.split_to(128);
}
#[test]
@@ -851,3 +846,57 @@ fn from_iter_no_size_hint() {
assert_eq!(&actual[..], &expect[..]);
}
+
+fn test_slice_ref(bytes: &Bytes, start: usize, end: usize, expected: &[u8]) {
+ let slice = &(bytes.as_ref()[start..end]);
+ let sub = bytes.slice_ref(&slice);
+ assert_eq!(&sub[..], expected);
+}
+
+#[test]
+fn slice_ref_works() {
+ let bytes = Bytes::from(&b"012345678"[..]);
+
+ test_slice_ref(&bytes, 0, 0, b"");
+ test_slice_ref(&bytes, 0, 3, b"012");
+ test_slice_ref(&bytes, 2, 6, b"2345");
+ test_slice_ref(&bytes, 7, 9, b"78");
+ test_slice_ref(&bytes, 9, 9, b"");
+}
+
+
+#[test]
+fn slice_ref_empty() {
+ let bytes = Bytes::from(&b""[..]);
+ let slice = &(bytes.as_ref()[0..0]);
+
+ let sub = bytes.slice_ref(&slice);
+ assert_eq!(&sub[..], b"");
+}
+
+#[test]
+#[should_panic]
+fn slice_ref_catches_not_a_subset() {
+ let bytes = Bytes::from(&b"012345678"[..]);
+ let slice = &b"012345"[0..4];
+
+ bytes.slice_ref(slice);
+}
+
+#[test]
+#[should_panic]
+fn slice_ref_catches_not_an_empty_subset() {
+ let bytes = Bytes::from(&b"012345678"[..]);
+ let slice = &b""[0..0];
+
+ bytes.slice_ref(slice);
+}
+
+#[test]
+#[should_panic]
+fn empty_slice_ref_catches_not_an_empty_subset() {
+ let bytes = Bytes::from(&b""[..]);
+ let slice = &b""[0..0];
+
+ bytes.slice_ref(slice);
+}
diff --git a/tests/test_reader.rs b/tests/test_reader.rs
new file mode 100644
index 0000000..7103f35
--- /dev/null
+++ b/tests/test_reader.rs
@@ -0,0 +1,28 @@
+extern crate bytes;
+
+use std::io::{BufRead, Cursor, Read};
+
+use bytes::Buf;
+
+#[test]
+fn read() {
+ let buf1 = Cursor::new(b"hello ");
+ let buf2 = Cursor::new(b"world");
+ let buf = Buf::chain(buf1, buf2); // Disambiguate with Read::chain
+ let mut buffer = Vec::new();
+ buf.reader().read_to_end(&mut buffer).unwrap();
+ assert_eq!(b"hello world", &buffer[..]);
+}
+
+#[test]
+fn buf_read() {
+ let buf1 = Cursor::new(b"hell");
+ let buf2 = Cursor::new(b"o\nworld");
+ let mut reader = Buf::chain(buf1, buf2).reader();
+ let mut line = String::new();
+ reader.read_line(&mut line).unwrap();
+ assert_eq!("hello\n", &line);
+ line.clear();
+ reader.read_line(&mut line).unwrap();
+ assert_eq!("world", &line);
+}