summaryrefslogtreecommitdiff
path: root/vendor/bytes/tests/test_chain.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/bytes/tests/test_chain.rs')
-rw-r--r--vendor/bytes/tests/test_chain.rs177
1 files changed, 0 insertions, 177 deletions
diff --git a/vendor/bytes/tests/test_chain.rs b/vendor/bytes/tests/test_chain.rs
deleted file mode 100644
index cfda6b8d..00000000
--- a/vendor/bytes/tests/test_chain.rs
+++ /dev/null
@@ -1,177 +0,0 @@
-#![warn(rust_2018_idioms)]
-
-use bytes::{Buf, BufMut, Bytes};
-#[cfg(feature = "std")]
-use std::io::IoSlice;
-
-#[test]
-fn collect_two_bufs() {
- let a = Bytes::from(&b"hello"[..]);
- let b = Bytes::from(&b"world"[..]);
-
- let res = a.chain(b).copy_to_bytes(10);
- assert_eq!(res, &b"helloworld"[..]);
-}
-
-#[test]
-fn writing_chained() {
- let mut a = [0u8; 64];
- let mut b = [0u8; 64];
-
- {
- let mut buf = (&mut a[..]).chain_mut(&mut b[..]);
-
- for i in 0u8..128 {
- buf.put_u8(i);
- }
- }
-
- for i in 0..64 {
- let expect = i as u8;
- assert_eq!(expect, a[i]);
- assert_eq!(expect + 64, b[i]);
- }
-}
-
-#[test]
-fn iterating_two_bufs() {
- let a = Bytes::from(&b"hello"[..]);
- let b = Bytes::from(&b"world"[..]);
-
- let res: Vec<u8> = a.chain(b).into_iter().collect();
- assert_eq!(res, &b"helloworld"[..]);
-}
-
-#[cfg(feature = "std")]
-#[test]
-fn vectored_read() {
- let a = Bytes::from(&b"hello"[..]);
- let b = Bytes::from(&b"world"[..]);
-
- let mut buf = a.chain(b);
-
- {
- let b1: &[u8] = &mut [];
- let b2: &[u8] = &mut [];
- let b3: &[u8] = &mut [];
- let b4: &[u8] = &mut [];
- let mut iovecs = [
- IoSlice::new(b1),
- IoSlice::new(b2),
- IoSlice::new(b3),
- IoSlice::new(b4),
- ];
-
- assert_eq!(2, buf.chunks_vectored(&mut iovecs));
- assert_eq!(iovecs[0][..], b"hello"[..]);
- assert_eq!(iovecs[1][..], b"world"[..]);
- assert_eq!(iovecs[2][..], b""[..]);
- assert_eq!(iovecs[3][..], b""[..]);
- }
-
- buf.advance(2);
-
- {
- let b1: &[u8] = &mut [];
- let b2: &[u8] = &mut [];
- let b3: &[u8] = &mut [];
- let b4: &[u8] = &mut [];
- let mut iovecs = [
- IoSlice::new(b1),
- IoSlice::new(b2),
- IoSlice::new(b3),
- IoSlice::new(b4),
- ];
-
- assert_eq!(2, buf.chunks_vectored(&mut iovecs));
- assert_eq!(iovecs[0][..], b"llo"[..]);
- assert_eq!(iovecs[1][..], b"world"[..]);
- assert_eq!(iovecs[2][..], b""[..]);
- assert_eq!(iovecs[3][..], b""[..]);
- }
-
- buf.advance(3);
-
- {
- let b1: &[u8] = &mut [];
- let b2: &[u8] = &mut [];
- let b3: &[u8] = &mut [];
- let b4: &[u8] = &mut [];
- let mut iovecs = [
- IoSlice::new(b1),
- IoSlice::new(b2),
- IoSlice::new(b3),
- IoSlice::new(b4),
- ];
-
- assert_eq!(1, buf.chunks_vectored(&mut iovecs));
- assert_eq!(iovecs[0][..], b"world"[..]);
- assert_eq!(iovecs[1][..], b""[..]);
- assert_eq!(iovecs[2][..], b""[..]);
- assert_eq!(iovecs[3][..], b""[..]);
- }
-
- buf.advance(3);
-
- {
- let b1: &[u8] = &mut [];
- let b2: &[u8] = &mut [];
- let b3: &[u8] = &mut [];
- let b4: &[u8] = &mut [];
- let mut iovecs = [
- IoSlice::new(b1),
- IoSlice::new(b2),
- IoSlice::new(b3),
- IoSlice::new(b4),
- ];
-
- assert_eq!(1, buf.chunks_vectored(&mut iovecs));
- assert_eq!(iovecs[0][..], b"ld"[..]);
- assert_eq!(iovecs[1][..], b""[..]);
- assert_eq!(iovecs[2][..], b""[..]);
- assert_eq!(iovecs[3][..], b""[..]);
- }
-}
-
-#[test]
-fn chain_growing_buffer() {
- let mut buff = [' ' as u8; 10];
- let mut vec = b"wassup".to_vec();
-
- let mut chained = (&mut buff[..]).chain_mut(&mut vec).chain_mut(Vec::new()); // Required for potential overflow because remaining_mut for Vec is isize::MAX - vec.len(), but for chain_mut is usize::MAX
-
- chained.put_slice(b"hey there123123");
-
- assert_eq!(&buff, b"hey there1");
- assert_eq!(&vec, b"wassup23123");
-}
-
-#[test]
-fn chain_overflow_remaining_mut() {
- let mut chained = Vec::<u8>::new().chain_mut(Vec::new()).chain_mut(Vec::new());
-
- assert_eq!(chained.remaining_mut(), usize::MAX);
- chained.put_slice(&[0; 256]);
- assert_eq!(chained.remaining_mut(), usize::MAX);
-}
-
-#[test]
-fn chain_get_bytes() {
- let mut ab = Bytes::copy_from_slice(b"ab");
- let mut cd = Bytes::copy_from_slice(b"cd");
- let ab_ptr = ab.as_ptr();
- let cd_ptr = cd.as_ptr();
- let mut chain = (&mut ab).chain(&mut cd);
- let a = chain.copy_to_bytes(1);
- let bc = chain.copy_to_bytes(2);
- let d = chain.copy_to_bytes(1);
-
- assert_eq!(Bytes::copy_from_slice(b"a"), a);
- assert_eq!(Bytes::copy_from_slice(b"bc"), bc);
- assert_eq!(Bytes::copy_from_slice(b"d"), d);
-
- // assert `get_bytes` did not allocate
- assert_eq!(ab_ptr, a.as_ptr());
- // assert `get_bytes` did not allocate
- assert_eq!(cd_ptr.wrapping_offset(1), d.as_ptr());
-}