ASSERT_EQ(0, rados_striper_aio_write(striper, "WaitForSafe", my_completion, buf, sizeof(buf), 0));
TestAlarm alarm;
rados_aio_wait_for_safe(my_completion);
+ sem_wait(&test_data.m_sem);
+ sem_wait(&test_data.m_sem);
rados_aio_release(my_completion);
}
ASSERT_EQ(0, striper.aio_write("WaitForSafePP", my_completion, bl1, sizeof(buf), 0));
TestAlarm alarm;
my_completion->wait_for_safe();
+ sem_wait(&test_data.m_sem);
+ sem_wait(&test_data.m_sem);
my_completion->release();
}
rados_aio_wait_for_complete(my_completion2);
}
ASSERT_EQ(0, memcmp(buf, buf2, sizeof(buf)));
+ sem_wait(&test_data.m_sem);
+ sem_wait(&test_data.m_sem);
rados_aio_release(my_completion);
rados_aio_release(my_completion2);
}
rados_aio_wait_for_safe(my_completion2);
}
ASSERT_EQ(0, memcmp(buf, buf2, sizeof(buf)));
+ sem_wait(&test_data.m_sem);
+ sem_wait(&test_data.m_sem);
rados_aio_release(my_completion);
rados_aio_release(my_completion2);
}
my_completion2->wait_for_complete();
}
ASSERT_EQ(0, memcmp(buf, bl2.c_str(), sizeof(buf)));
+ sem_wait(&test_data.m_sem);
+ sem_wait(&test_data.m_sem);
my_completion->release();
my_completion2->release();
}
my_completion2->wait_for_safe();
}
ASSERT_EQ(0, memcmp(buf, bl2.c_str(), sizeof(buf)));
+ sem_wait(&test_data.m_sem);
+ sem_wait(&test_data.m_sem);
my_completion->release();
my_completion2->release();
}
}
}
ASSERT_EQ(0, memcmp(buf, buf2, sizeof(buf)));
+ sem_wait(&test_data.m_sem);
+ sem_wait(&test_data.m_sem);
rados_aio_release(my_completion);
rados_aio_release(my_completion2);
}
}
}
ASSERT_EQ(0, memcmp(buf, bl2.c_str(), sizeof(buf)));
+ sem_wait(&test_data.m_sem);
+ sem_wait(&test_data.m_sem);
my_completion->release();
my_completion2->release();
}
rados_aio_wait_for_complete(my_completion2);
}
ASSERT_EQ(0, memcmp(buf, buf2, sizeof(buf)));
+ sem_wait(&test_data.m_sem);
+ sem_wait(&test_data.m_sem);
rados_aio_release(my_completion);
rados_aio_release(my_completion2);
}
my_completion2->wait_for_complete();
}
ASSERT_EQ(0, memcmp(buf, bl2.c_str(), sizeof(buf)));
+ sem_wait(&test_data.m_sem);
+ sem_wait(&test_data.m_sem);
my_completion->release();
my_completion2->release();
}
ASSERT_EQ((int)(sizeof(buf) + sizeof(buf2)), rados_aio_get_return_value(my_completion3));
ASSERT_EQ(0, memcmp(buf3, buf, sizeof(buf)));
ASSERT_EQ(0, memcmp(buf3 + sizeof(buf), buf2, sizeof(buf2)));
+ sem_wait(&test_data.m_sem);
+ sem_wait(&test_data.m_sem);
rados_aio_release(my_completion);
rados_aio_release(my_completion2);
rados_aio_release(my_completion3);
ASSERT_EQ(sizeof(buf) + sizeof(buf2), (unsigned)my_completion3->get_return_value());
ASSERT_EQ(0, memcmp(bl3.c_str(), buf, sizeof(buf)));
ASSERT_EQ(0, memcmp(bl3.c_str() + sizeof(buf), buf2, sizeof(buf2)));
+ sem_wait(&test_data.m_sem);
+ sem_wait(&test_data.m_sem);
my_completion->release();
my_completion2->release();
my_completion3->release();
rados_aio_wait_for_complete(my_completion2);
}
ASSERT_EQ(0, memcmp(buf, buf2, sizeof(buf)));
+ sem_wait(&test_data.m_sem);
+ sem_wait(&test_data.m_sem);
rados_aio_release(my_completion);
rados_aio_release(my_completion2);
}
my_completion2->wait_for_complete();
}
ASSERT_EQ(0, memcmp(buf, bl2.c_str(), sizeof(buf)));
+ sem_wait(&test_data.m_sem);
+ sem_wait(&test_data.m_sem);
my_completion->release();
my_completion2->release();
}
}
ASSERT_EQ(sizeof(buf2), (unsigned)rados_aio_get_return_value(my_completion3));
ASSERT_EQ(0, memcmp(buf3, buf2, sizeof(buf2)));
+ sem_wait(&test_data.m_sem);
+ sem_wait(&test_data.m_sem);
rados_aio_release(my_completion);
rados_aio_release(my_completion2);
rados_aio_release(my_completion3);
}
ASSERT_EQ(sizeof(buf2), (unsigned)my_completion3->get_return_value());
ASSERT_EQ(0, memcmp(bl3.c_str(), buf2, sizeof(buf2)));
+ sem_wait(&test_data.m_sem);
+ sem_wait(&test_data.m_sem);
my_completion->release();
my_completion2->release();
my_completion3->release();