aboutsummaryrefslogtreecommitdiff
path: root/tests/test_bytes_vec_alloc.rs
diff options
context:
space:
mode:
authorGravatar Jiahao XU <Jiahao_XU@outlook.com> 2022-07-13 17:04:23 +1000
committerGravatar GitHub <noreply@github.com> 2022-07-13 09:04:23 +0200
commitcd188cbd67c073128fdc339be8d5d67436d76f36 (patch)
tree448ab7b1505f323296e2a94c8be2e90a0784acd0 /tests/test_bytes_vec_alloc.rs
parent10d1f6ec5c4e878aad9d13140d3479b3ea78ffcf (diff)
downloadbytes-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.rs29
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]);
+}