#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; bool has_failed = false; auto res = immediately_done.then([&passed](int a) { passed = a; }).sink([&](auto err){ has_failed = true; return err; }); wait.poll(); wait.poll(); wait.poll(); wait.poll(); wait.poll(); SAW_EXPECT(passed == val, "Expected a 5 in passed value."); SAW_EXPECT(!has_failed, "No error should occur in queueing"); } }