sled/tests/asio_test.cc
tqcq 302b944081
Some checks failed
linux-x64-gcc / linux-gcc (Release) (push) Failing after 42s
linux-mips64-gcc / linux-gcc-mips64el (Release) (push) Failing after 57s
linux-x64-gcc / linux-gcc (Debug) (push) Failing after 59s
linux-aarch64-cpu-gcc / linux-gcc-aarch64 (push) Failing after 1m21s
linux-arm-gcc / linux-gcc-armhf (push) Failing after 1m29s
linux-mips64-gcc / linux-gcc-mips64el (Debug) (push) Failing after 1m32s
feat add asio
2024-05-15 17:37:43 +08:00

40 lines
938 B
C++

#include <sled/sled.h>
TEST_SUITE("asio") {
TEST_CASE("io_context") {
asio::io_context ctx;
int x = 0;
asio::dispatch(ctx, [&]{
CHECK_EQ(x, 0);
++x;
});
asio::post(ctx, [&]{
CHECK_EQ(x, 1);
++x;
asio::dispatch(ctx, [&]{
CHECK_EQ(x, 2);
++x;
});
CHECK_EQ(x, 3);
++x;
});
asio::steady_timer timer(ctx, std::chrono::milliseconds(500));
timer.async_wait([&](const asio::error_code& ec){
if (ec.value() == asio::error::operation_aborted) {
return;
}
CHECK_EQ(x, 4);
++x;
});
// start ctx
{
CHECK_EQ(x, 0);
ctx.run();
CHECK_EQ(x, 5);
}
}
}