}
}
-TEST(LibRadosAio, SimplePoolEIOFlag) {
- AioTestDataPP test_data;
- ASSERT_EQ("", test_data.init());
-
- auto my_completion = std::unique_ptr<AioCompletion>{Rados::aio_create_completion()};
- ASSERT_TRUE(my_completion);
-
- bufferlist empty;
- ASSERT_EQ(0, test_data.m_cluster.mon_command(
- fmt::format(R"({{
- "prefix": "osd pool set",
- "pool": "{}",
- "var": "eio",
- "val": "true"
- }})", test_data.m_pool_name),
- empty, nullptr, nullptr));
-
- bufferlist bl;
- bl.append("some data");
-
- ASSERT_EQ(0, test_data.m_ioctx.aio_write("foo", my_completion.get(),
- bl, bl.length(), 0));
- {
- TestAlarm alarm;
- ASSERT_EQ(0, my_completion->wait_for_complete());
- }
- ASSERT_EQ(-EIO, my_completion->get_return_value());
-}
-
TEST(LibRadosAio, PoolEIOFlag) {
AioTestDataPP test_data;
ASSERT_EQ("", test_data.init());
std::thread *t = nullptr;
unsigned max = 100;
+ unsigned timeout = max * 10;
unsigned long i = 1;
my_lock.lock();
- for (; min_failed == 0 && i <= max; ++i) {
+ for (; min_failed == 0 && i <= timeout; ++i) {
io_info *info = new io_info;
info->i = i;
info->c = Rados::aio_create_completion();
// wait for ios to finish
for (; !inflight.empty(); ++i) {
- cout << "waiting for " << inflight << std::endl;
+ cout << "waiting for " << inflight.size() << std::endl;
my_lock.unlock();
sleep(1);
my_lock.lock();