#include #include #include "../c++/async.hpp" namespace { SAW_TEST("Immediate Conveyor"){ using namespace saw; event_loop loop; wait_scope wait{loop}; int val = 5; conveyor immediately_done{val}; int passed = 0; auto res = immediately_done.then([&passed](int a) { passed = a; }).sink(); wait.poll(); SAW_EXPECT(passed == val, "Expected a 5 in passed value."); } SAW_TEST("Immediate Conveyor Queueing"){ using namespace saw; event_loop loop; wait_scope wait{loop}; int val = 5; conveyor immediately_done{val}; int passed = 0; auto res = immediately_done.then([&passed](int a) { passed = a; }).sink([](auto err){ SAW_EXPECT(false, "No error should occur. This code path shouldn't be reachable."); return err; }); wait.poll(); wait.poll(); wait.poll(); wait.poll(); wait.poll(); SAW_EXPECT(passed == val, "Expected a 5 in passed value."); } }