From 68a6e9658047aa04f16870dbc48ba79a2963a650 Mon Sep 17 00:00:00 2001 From: "Claudius \"keldu\" Holeksa" Date: Fri, 15 Mar 2024 11:39:31 +0100 Subject: async: Introducing minor tests for immediate conveyors --- modules/async/tests/immediate.cpp | 52 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 modules/async/tests/immediate.cpp (limited to 'modules/async/tests/immediate.cpp') diff --git a/modules/async/tests/immediate.cpp b/modules/async/tests/immediate.cpp new file mode 100644 index 0000000..a5d9b2f --- /dev/null +++ b/modules/async/tests/immediate.cpp @@ -0,0 +1,52 @@ +#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."); +} +} -- cgit v1.2.3