TEST(CoroSucc, AioComplete)
{
- auto lrc = librados::Rados::aio_create_completion();
+ std::unique_ptr<librados::AioCompletion> lrc{librados::Rados::aio_create_completion()};
asio::io_context c;
asio::co_spawn(c.get_executor(),
[]() -> asio::awaitable<void> {
co_return;
- }(), lrc);
+ }(), lrc.get());
c.run();
lrc->wait_for_complete();
auto r = lrc->get_return_value();
TEST(CoroExcept, AioComplete)
{
- auto lrc = librados::Rados::aio_create_completion();
+ std::unique_ptr<librados::AioCompletion> lrc{librados::Rados::aio_create_completion()};
asio::io_context c;
asio::co_spawn(c.get_executor(),
[]() -> asio::awaitable<void> {
throw sys::system_error{ENOENT, sys::generic_category()};
co_return;
- }(), lrc);
+ }(), lrc.get());
c.run();
lrc->wait_for_complete();
auto r = lrc->get_return_value();
TEST(CoroUnknownExcept, AioComplete)
{
- auto lrc = librados::Rados::aio_create_completion();
+ std::unique_ptr<librados::AioCompletion> lrc{librados::Rados::aio_create_completion()};
asio::io_context c;
asio::co_spawn(c.get_executor(),
[]() -> asio::awaitable<void> {
throw std::exception{};
co_return;
- }(), lrc);
+ }(), lrc.get());
c.run();
lrc->wait_for_complete();
auto r = lrc->get_return_value();
TEST(Int, AioComplete)
{
- auto lrc = librados::Rados::aio_create_completion();
+ std::unique_ptr<librados::AioCompletion> lrc{librados::Rados::aio_create_completion()};
asio::io_context c;
async::async_dispatch(c.get_executor(),
[]() {
return -42;
- }, lrc);
+ }, lrc.get());
c.run();
lrc->wait_for_complete();
auto r = lrc->get_return_value();
TEST(EC, AioComplete)
{
- auto lrc = librados::Rados::aio_create_completion();
+ std::unique_ptr<librados::AioCompletion> lrc{librados::Rados::aio_create_completion()};
asio::io_context c;
async::async_dispatch(c.get_executor(),
[]() {
return sys::error_code(ENOENT,
sys::generic_category());
- }, lrc);
+ }, lrc.get());
c.run();
lrc->wait_for_complete();
auto r = lrc->get_return_value();