From: Colin Patrick McCabe Date: Thu, 11 Aug 2011 18:15:52 +0000 (-0700) Subject: test/rados-api/io.cc: test RoundTripPP, etc. X-Git-Tag: v0.34~81^2~28 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=fef049e1ce2a08b9d70d0c7dd33eaed67379199d;p=ceph.git test/rados-api/io.cc: test RoundTripPP, etc. Signed-off-by: Colin McCabe --- diff --git a/src/test/rados-api/io.cc b/src/test/rados-api/io.cc index 6b73e6f5d94b..d827463ec536 100644 --- a/src/test/rados-api/io.cc +++ b/src/test/rados-api/io.cc @@ -52,6 +52,25 @@ TEST(LibRadosIo, RoundTrip) { ASSERT_EQ(0, destroy_one_pool(pool_name, &cluster)); } +TEST(LibRadosIo, RoundTripPP) { + char buf[128]; + char buf2[128]; + Rados cluster; + std::string pool_name = get_temp_pool_name(); + ASSERT_EQ("", create_one_pool_pp(pool_name, cluster)); + IoCtx ioctx; + cluster.ioctx_create(pool_name.c_str(), ioctx); + memset(buf, 0xcc, sizeof(buf)); + bufferlist bl; + bl.append(buf, sizeof(buf)); + ASSERT_EQ((int)sizeof(buf), ioctx.write("foo", bl, sizeof(buf), 0)); + bufferlist cl; + ASSERT_EQ((int)sizeof(buf2), ioctx.read("foo", cl, sizeof(buf), 0)); + ASSERT_EQ(0, memcmp(buf, cl.c_str(), sizeof(buf))); + ioctx.close(); + ASSERT_EQ(0, destroy_one_pool_pp(pool_name, cluster)); +} + TEST(LibRadosIo, OverlappingWriteRoundTrip) { char buf[128]; char buf2[64]; @@ -73,6 +92,30 @@ TEST(LibRadosIo, OverlappingWriteRoundTrip) { ASSERT_EQ(0, destroy_one_pool(pool_name, &cluster)); } +TEST(LibRadosIo, OverlappingWriteRoundTripPP) { + char buf[128]; + char buf2[64]; + Rados cluster; + std::string pool_name = get_temp_pool_name(); + ASSERT_EQ("", create_one_pool_pp(pool_name, cluster)); + IoCtx ioctx; + cluster.ioctx_create(pool_name.c_str(), ioctx); + memset(buf, 0xcc, sizeof(buf)); + bufferlist bl1; + bl1.append(buf, sizeof(buf)); + ASSERT_EQ((int)sizeof(buf), ioctx.write("foo", bl1, sizeof(buf), 0)); + memset(buf2, 0xdd, sizeof(buf2)); + bufferlist bl2; + bl2.append(buf2, sizeof(buf2)); + ASSERT_EQ((int)sizeof(buf2), ioctx.write("foo", bl2, sizeof(buf2), 0)); + bufferlist bl3; + ASSERT_EQ((int)sizeof(buf), ioctx.read("foo", bl3, sizeof(buf), 0)); + ASSERT_EQ(0, memcmp(bl3.c_str(), buf2, sizeof(buf2))); + ASSERT_EQ(0, memcmp(bl3.c_str() + sizeof(buf2), buf, sizeof(buf) - sizeof(buf2))); + ioctx.close(); + ASSERT_EQ(0, destroy_one_pool_pp(pool_name, cluster)); +} + TEST(LibRadosIo, WriteFullRoundTrip) { char buf[128]; char buf2[64];