aboutsummaryrefslogtreecommitdiff
path: root/tests/test_bytes.rs
diff options
context:
space:
mode:
authorGravatar Tim Hambourger <tim.hambourger@gmail.com> 2020-03-13 07:55:54 -0500
committerGravatar Sean McArthur <sean@seanmonstar.com> 2020-03-24 11:14:16 -0700
commit8bbe9dd87bdf11b1536e56415a39827eeb6d0f3e (patch)
treec42d50f8249af18e7d976ab7ae4c9b0cf4b420bc /tests/test_bytes.rs
parentfe6e67386451715c5d609c90a41e98ef80f0e1d1 (diff)
downloadbytes-8bbe9dd87bdf11b1536e56415a39827eeb6d0f3e.tar.gz
bytes-8bbe9dd87bdf11b1536e56415a39827eeb6d0f3e.tar.zst
bytes-8bbe9dd87bdf11b1536e56415a39827eeb6d0f3e.zip
Fix #352 -- Make freeze respect the start offset for BytesMuts in Vec mode
Diffstat (limited to 'tests/test_bytes.rs')
-rw-r--r--tests/test_bytes.rs66
1 files changed, 66 insertions, 0 deletions
diff --git a/tests/test_bytes.rs b/tests/test_bytes.rs
index 40fcae4..4775773 100644
--- a/tests/test_bytes.rs
+++ b/tests/test_bytes.rs
@@ -343,6 +343,72 @@ fn freeze_clone_unique() {
}
#[test]
+fn freeze_after_advance() {
+ let s = &b"abcdefgh"[..];
+ let mut b = BytesMut::from(s);
+ b.advance(1);
+ assert_eq!(b, s[1..]);
+ let b = b.freeze();
+ // Verify fix for #352. Previously, freeze would ignore the start offset
+ // for BytesMuts in Vec mode.
+ assert_eq!(b, s[1..]);
+}
+
+#[test]
+fn freeze_after_advance_arc() {
+ let s = &b"abcdefgh"[..];
+ let mut b = BytesMut::from(s);
+ // Make b Arc
+ let _ = b.split_to(0);
+ b.advance(1);
+ assert_eq!(b, s[1..]);
+ let b = b.freeze();
+ assert_eq!(b, s[1..]);
+}
+
+#[test]
+fn freeze_after_split_to() {
+ let s = &b"abcdefgh"[..];
+ let mut b = BytesMut::from(s);
+ let _ = b.split_to(1);
+ assert_eq!(b, s[1..]);
+ let b = b.freeze();
+ assert_eq!(b, s[1..]);
+}
+
+#[test]
+fn freeze_after_truncate() {
+ let s = &b"abcdefgh"[..];
+ let mut b = BytesMut::from(s);
+ b.truncate(7);
+ assert_eq!(b, s[..7]);
+ let b = b.freeze();
+ assert_eq!(b, s[..7]);
+}
+
+#[test]
+fn freeze_after_truncate_arc() {
+ let s = &b"abcdefgh"[..];
+ let mut b = BytesMut::from(s);
+ // Make b Arc
+ let _ = b.split_to(0);
+ b.truncate(7);
+ assert_eq!(b, s[..7]);
+ let b = b.freeze();
+ assert_eq!(b, s[..7]);
+}
+
+#[test]
+fn freeze_after_split_off() {
+ let s = &b"abcdefgh"[..];
+ let mut b = BytesMut::from(s);
+ let _ = b.split_off(7);
+ assert_eq!(b, s[..7]);
+ let b = b.freeze();
+ assert_eq!(b, s[..7]);
+}
+
+#[test]
fn fns_defined_for_bytes_mut() {
let mut bytes = BytesMut::from(&b"hello world"[..]);