From 1f188b56280e71adfaccaf67dd55cd89f593a067 Mon Sep 17 00:00:00 2001 From: Nikolay Kim <fafhrd91@gmail.com> Date: Tue, 13 Sep 2016 15:30:44 -0700 Subject: [PATCH] fix dropping front block in BlockBuf --- src/buf/block.rs | 2 +- test/test.rs | 1 + test/test_block.rs | 22 ++++++++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 test/test_block.rs diff --git a/src/buf/block.rs b/src/buf/block.rs index 086c90e..988318b 100644 --- a/src/buf/block.rs +++ b/src/buf/block.rs @@ -175,7 +175,7 @@ impl BlockBuf { block.drop(segment_n); - !MutBuf::has_remaining(block) + block.len() == 0 }; if pop { diff --git a/test/test.rs b/test/test.rs index f4edae2..5158856 100644 --- a/test/test.rs +++ b/test/test.rs @@ -6,6 +6,7 @@ extern crate byteorder; // == Buf mod test_append; +mod test_block; mod test_buf; mod test_buf_fill; mod test_byte_buf; diff --git a/test/test_block.rs b/test/test_block.rs new file mode 100644 index 0000000..37a9334 --- /dev/null +++ b/test/test_block.rs @@ -0,0 +1,22 @@ +use bytes::{MutBuf, BlockBuf}; + + +#[test] +pub fn test_block_drop() { + let mut buf = BlockBuf::new(2, 4); + + assert_eq!(buf.remaining(), 8); + + buf.write_slice(b"12345"); + buf.write_slice(b"678"); + assert_eq!(buf.remaining(), 0); + assert_eq!(buf.len(), 8); + + buf.drop(1); + assert_eq!(buf.len(), 7); + assert_eq!(buf.is_compact(), false); + + buf.drop(4); + assert_eq!(buf.len(), 3); + assert_eq!(buf.is_compact(), true); +} -- GitLab