From: Colin Patrick McCabe Date: Tue, 16 Aug 2011 19:59:40 +0000 (-0700) Subject: test/rados-api/aio.cc: implement FlushPP X-Git-Tag: v0.34~81^2~7 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9df460593a23f5dc38a31b99aec3917d989b74b7;p=ceph.git test/rados-api/aio.cc: implement FlushPP Signed-off-by: Colin McCabe --- diff --git a/src/test/rados-api/aio.cc b/src/test/rados-api/aio.cc index 8799c37bbca4..35035f55434b 100644 --- a/src/test/rados-api/aio.cc +++ b/src/test/rados-api/aio.cc @@ -515,24 +515,6 @@ TEST(LibRadosAio, IsSafePP) { delete my_completion2; } -TEST(LibRadosAio, ReturnValuePP) { - AioTestDataPP test_data; - ASSERT_EQ("", test_data.init()); - AioCompletion *my_completion = test_data.m_cluster.aio_create_completion( - (void*)&test_data, set_completion_complete, set_completion_safe); - AioCompletion *my_completion_null = NULL; - ASSERT_NE(my_completion, my_completion_null); - bufferlist bl1; - ASSERT_EQ(0, test_data.m_ioctx.aio_read("nonexistent", - my_completion, &bl1, 128, 0)); - { - TestAlarm alarm; - ASSERT_EQ(0, my_completion->wait_for_complete()); - } - ASSERT_EQ(-ENOENT, my_completion->get_return_value()); - delete my_completion; -} - TEST(LibRadosAio, ReturnValue) { AioTestData test_data; rados_completion_t my_completion; @@ -551,6 +533,24 @@ TEST(LibRadosAio, ReturnValue) { rados_aio_release(my_completion); } +TEST(LibRadosAio, ReturnValuePP) { + AioTestDataPP test_data; + ASSERT_EQ("", test_data.init()); + AioCompletion *my_completion = test_data.m_cluster.aio_create_completion( + (void*)&test_data, set_completion_complete, set_completion_safe); + AioCompletion *my_completion_null = NULL; + ASSERT_NE(my_completion, my_completion_null); + bufferlist bl1; + ASSERT_EQ(0, test_data.m_ioctx.aio_read("nonexistent", + my_completion, &bl1, 128, 0)); + { + TestAlarm alarm; + ASSERT_EQ(0, my_completion->wait_for_complete()); + } + ASSERT_EQ(-ENOENT, my_completion->get_return_value()); + delete my_completion; +} + TEST(LibRadosAio, Flush) { AioTestData test_data; rados_completion_t my_completion; @@ -578,6 +578,35 @@ TEST(LibRadosAio, Flush) { rados_aio_release(my_completion2); } +TEST(LibRadosAio, FlushPP) { + AioTestDataPP test_data; + ASSERT_EQ("", test_data.init()); + AioCompletion *my_completion = test_data.m_cluster.aio_create_completion( + (void*)&test_data, set_completion_complete, set_completion_safe); + AioCompletion *my_completion_null = NULL; + ASSERT_NE(my_completion, my_completion_null); + char buf[128]; + memset(buf, 0xee, sizeof(buf)); + bufferlist bl1; + bl1.append(buf, sizeof(buf)); + ASSERT_EQ(0, test_data.m_ioctx.aio_write("foo", my_completion, + bl1, sizeof(buf), 0)); + ASSERT_EQ(0, test_data.m_ioctx.aio_flush()); + bufferlist bl2; + AioCompletion *my_completion2 = test_data.m_cluster.aio_create_completion( + (void*)&test_data, set_completion_complete, set_completion_safe); + ASSERT_NE(my_completion2, my_completion_null); + ASSERT_EQ(0, test_data.m_ioctx.aio_read("foo", my_completion2, + &bl2, sizeof(buf), 0)); + { + TestAlarm alarm; + ASSERT_EQ(0, my_completion2->wait_for_complete()); + } + ASSERT_EQ(0, memcmp(buf, bl2.c_str(), sizeof(buf))); + delete my_completion; + delete my_completion2; +} + TEST(LibRadosAio, RoundTripWriteFull) { AioTestData test_data; rados_completion_t my_completion, my_completion2, my_completion3;