TEST(Coro, Basic2) { ManualExecutor executor; auto future = via(&executor, taskVoid()); EXPECT_FALSE(future.await_ready()); executor.drive(); EXPECT_TRUE(future.await_ready()); }
TEST(Coro, Basic) { ManualExecutor executor; auto future = via(&executor, task42()); EXPECT_FALSE(future.await_ready()); executor.drive(); EXPECT_TRUE(future.await_ready()); EXPECT_EQ(42, future.get()); }
TEST(Coro, Throw) { ManualExecutor executor; auto future = via(&executor, taskException()); EXPECT_FALSE(future.await_ready()); executor.drive(); EXPECT_TRUE(future.await_ready()); EXPECT_THROW(future.get(), std::runtime_error); }