diff options
author | 2022-07-13 17:04:23 +1000 | |
---|---|---|
committer | 2022-07-13 09:04:23 +0200 | |
commit | cd188cbd67c073128fdc339be8d5d67436d76f36 (patch) | |
tree | 448ab7b1505f323296e2a94c8be2e90a0784acd0 /tests/test_bytes_vec_alloc.rs | |
parent | 10d1f6ec5c4e878aad9d13140d3479b3ea78ffcf (diff) | |
download | bytes-cd188cbd67c073128fdc339be8d5d67436d76f36.tar.gz bytes-cd188cbd67c073128fdc339be8d5d67436d76f36.tar.zst bytes-cd188cbd67c073128fdc339be8d5d67436d76f36.zip |
Add conversion from Bytes to Vec<u8> (#547)
Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
Co-authored-by: Alice Ryhl <aliceryhl@google.com>
Diffstat (limited to 'tests/test_bytes_vec_alloc.rs')
-rw-r--r-- | tests/test_bytes_vec_alloc.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/test_bytes_vec_alloc.rs b/tests/test_bytes_vec_alloc.rs index 752009f..107e56e 100644 --- a/tests/test_bytes_vec_alloc.rs +++ b/tests/test_bytes_vec_alloc.rs @@ -112,3 +112,32 @@ fn invalid_ptr<T>(addr: usize) -> *mut T { debug_assert_eq!(ptr as usize, addr); ptr.cast::<T>() } + +#[test] +fn test_bytes_into_vec() { + let vec = vec![33u8; 1024]; + + // Test cases where kind == KIND_VEC + let b1 = Bytes::from(vec.clone()); + assert_eq!(Vec::from(b1), vec); + + // Test cases where kind == KIND_ARC, ref_cnt == 1 + let b1 = Bytes::from(vec.clone()); + drop(b1.clone()); + assert_eq!(Vec::from(b1), vec); + + // Test cases where kind == KIND_ARC, ref_cnt == 2 + let b1 = Bytes::from(vec.clone()); + let b2 = b1.clone(); + assert_eq!(Vec::from(b1), vec); + + // Test cases where vtable = SHARED_VTABLE, kind == KIND_ARC, ref_cnt == 1 + assert_eq!(Vec::from(b2), vec); + + // Test cases where offset != 0 + let mut b1 = Bytes::from(vec.clone()); + let b2 = b1.split_off(20); + + assert_eq!(Vec::from(b2), vec[20..]); + assert_eq!(Vec::from(b1), vec[..20]); +} |