From: Sage Weil Date: Wed, 9 Mar 2016 18:04:13 +0000 (-0500) Subject: include/buffer: make is_partial work on empty ptr X-Git-Tag: v10.1.0~113^2~11 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=eee3d700853943f518e29b0fbd4173305403b6b4;p=ceph.git include/buffer: make is_partial work on empty ptr Add a few unit tests. Signed-off-by: Sage Weil --- diff --git a/src/include/buffer.h b/src/include/buffer.h index d765a76c4cb68..63a9d5d7ea73e 100644 --- a/src/include/buffer.h +++ b/src/include/buffer.h @@ -202,7 +202,9 @@ namespace buffer CEPH_BUFFER_API { return (length() % align) == 0; } bool is_n_page_sized() const { return is_n_align_sized(CEPH_PAGE_SIZE); } - bool is_partial() const { return start() > 0 || end() < raw_length(); } + bool is_partial() const { + return have_raw() && (start() > 0 || end() < raw_length()); + } // accessors raw *get_raw() const { return _raw; } diff --git a/src/test/bufferlist.cc b/src/test/bufferlist.cc index a6120fd061414..450f88bd2c646 100644 --- a/src/test/bufferlist.cc +++ b/src/test/bufferlist.cc @@ -638,6 +638,17 @@ TEST(BufferPtr, is_n_page_sized) { } } +TEST(BufferPtr, is_partial) { + bufferptr a; + EXPECT_FALSE(a.is_partial()); + bufferptr b(10); + EXPECT_FALSE(b.is_partial()); + bufferptr c(b, 1, 9); + EXPECT_TRUE(c.is_partial()); + bufferptr d(b, 0, 9); + EXPECT_TRUE(d.is_partial()); +} + TEST(BufferPtr, accessors) { unsigned len = 17; bufferptr ptr(len);