]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
test/rados-api/io: add AppendRoundTrip
authorColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Mon, 8 Aug 2011 23:09:03 +0000 (16:09 -0700)
committerColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Tue, 9 Aug 2011 23:02:52 +0000 (16:02 -0700)
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
src/test/rados-api/io.cc

index 875a14d41d5c59464abe78577c5f9734a94d5c53..9f030a42986ad65889a0e022b18bf4be62ccd964 100644 (file)
@@ -73,3 +73,24 @@ TEST(LibRadosIo, WriteFullRoundTrip) {
   rados_ioctx_destroy(ioctx);
   ASSERT_EQ(0, destroy_one_pool(pool_name, &cluster));
 }
+
+TEST(LibRadosIo, AppendRoundTrip) {
+  char buf[64];
+  char buf2[64];
+  char buf3[sizeof(buf) + sizeof(buf2)];
+  rados_t cluster;
+  rados_ioctx_t ioctx;
+  std::string pool_name = get_temp_pool_name();
+  ASSERT_EQ(0, create_one_pool(pool_name, &cluster));
+  rados_ioctx_create(cluster, pool_name.c_str(), &ioctx);
+  memset(buf, 0xde, sizeof(buf));
+  ASSERT_EQ((int)sizeof(buf), rados_append(ioctx, "foo", buf, sizeof(buf)));
+  memset(buf2, 0xad, sizeof(buf2));
+  ASSERT_EQ((int)sizeof(buf2), rados_append(ioctx, "foo", buf2, sizeof(buf2)));
+  memset(buf3, 0, sizeof(buf3));
+  ASSERT_EQ((int)sizeof(buf3), rados_read(ioctx, "foo", buf3, sizeof(buf3), 0));
+  ASSERT_EQ(0, memcmp(buf3, buf, sizeof(buf)));
+  ASSERT_EQ(0, memcmp(buf3 + sizeof(buf), buf2, sizeof(buf2)));
+  rados_ioctx_destroy(ioctx);
+  ASSERT_EQ(0, destroy_one_pool(pool_name, &cluster));
+}