]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
bufferlist: add more test case for bufferlist::get_contiguous. 3474/head
authorJianpeng Ma <jianpeng.ma@intel.com>
Fri, 23 Jan 2015 06:00:40 +0000 (14:00 +0800)
committerJianpeng Ma <jianpeng.ma@intel.com>
Mon, 26 Jan 2015 02:01:40 +0000 (10:01 +0800)
Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
src/test/bufferlist.cc

index 787ce7e4297741165e0e9dd0bd60f3c5d361288c..0fc8ec51a8e1c65b0e413f6c235f78afb8656ff9 100644 (file)
@@ -1082,22 +1082,52 @@ TEST(BufferList, buffers) {
 }
 
 TEST(BufferList, get_contiguous) {
-  bufferptr a("foobarbaz", 9);
-  bufferptr b("123456789", 9);
-  bufferptr c("ABCDEFGHI", 9);
-  bufferlist bl;
-  ASSERT_EQ(0, bl.get_contiguous(0, 0));
-
-  bl.append(a);
-  bl.append(b);
-  bl.append(c);
-  ASSERT_EQ(3u, bl.buffers().size());
-  ASSERT_EQ(0, memcmp("bar", bl.get_contiguous(3, 3), 3));
-  ASSERT_EQ(0, memcmp("456", bl.get_contiguous(12, 3), 3));
-  ASSERT_EQ(0, memcmp("ABC", bl.get_contiguous(18, 3), 3));
-  ASSERT_EQ(3u, bl.buffers().size());
-  ASSERT_EQ(0, memcmp("789ABC", bl.get_contiguous(15, 6), 6));
-  ASSERT_LT(bl.buffers().size(), 3u);
+  {
+    bufferptr a("foobarbaz", 9);
+    bufferptr b("123456789", 9);
+    bufferptr c("ABCDEFGHI", 9);
+    bufferlist bl;
+    ASSERT_EQ(0, bl.get_contiguous(0, 0));
+
+    bl.append(a);
+    bl.append(b);
+    bl.append(c);
+    ASSERT_EQ(3u, bl.buffers().size());
+    ASSERT_EQ(0, memcmp("bar", bl.get_contiguous(3, 3), 3));
+    ASSERT_EQ(0, memcmp("456", bl.get_contiguous(12, 3), 3));
+    ASSERT_EQ(0, memcmp("ABC", bl.get_contiguous(18, 3), 3));
+    ASSERT_EQ(3u, bl.buffers().size());
+    ASSERT_EQ(0, memcmp("789ABC", bl.get_contiguous(15, 6), 6));
+    ASSERT_EQ(2u, bl.buffers().size());
+  }
+
+  {
+    bufferptr a("foobarbaz", 9);
+    bufferptr b("123456789", 9);
+    bufferptr c("ABCDEFGHI", 9);
+    bufferlist bl;
+
+    bl.append(a);
+    bl.append(b);
+    bl.append(c);
+
+    ASSERT_EQ(0, memcmp("789ABCDEFGHI", bl.get_contiguous(15, 12), 12));
+    ASSERT_EQ(2u, bl.buffers().size());
+  }
+
+  {
+    bufferptr a("foobarbaz", 9);
+    bufferptr b("123456789", 9);
+    bufferptr c("ABCDEFGHI", 9);
+    bufferlist bl;
+
+    bl.append(a);
+    bl.append(b);
+    bl.append(c);
+
+    ASSERT_EQ(0, memcmp("z123456789AB", bl.get_contiguous(8, 12), 12));
+    ASSERT_EQ(1u, bl.buffers().size());
+  }
 }
 
 TEST(BufferList, swap) {