From 6533f261dc368ab3e28f123458df9eaa88859696 Mon Sep 17 00:00:00 2001 From: Matan Breizman Date: Sun, 2 Feb 2025 15:06:21 +0000 Subject: [PATCH] test/crimson/test_crimson_coroutine: add test_coroutine_loops Signed-off-by: Matan Breizman --- src/test/crimson/test_crimson_coroutine.cc | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/test/crimson/test_crimson_coroutine.cc b/src/test/crimson/test_crimson_coroutine.cc index 2b19ca07d8e..86743b374dc 100644 --- a/src/test/crimson/test_crimson_coroutine.cc +++ b/src/test/crimson/test_crimson_coroutine.cc @@ -5,6 +5,7 @@ #include #include "seastar/core/sleep.hh" +#include "seastar/core/loop.hh" #include "crimson/common/coroutine.h" #include "crimson/common/errorator.h" @@ -103,6 +104,28 @@ TEST_F(coroutine_test_t, test_coroutine) }); } +TEST_F(coroutine_test_t, test_coroutine_loops) +{ + run_scl([]() -> seastar::future<> { + int CHECK = 0; + std::vector v = {1,2,3}; + co_await seastar::parallel_for_each(v, + [&CHECK] (auto i) -> seastar::future<> { + CHECK++; + co_return; + }); + EXPECT_EQ(CHECK, v.size()); + + co_await seastar::do_until( + [&CHECK] { return CHECK == 0; }, + [&CHECK] () -> seastar::future<> { + CHECK--; + co_return; + }); + EXPECT_EQ(CHECK, 0); + }); +} + TEST_F(coroutine_test_t, test_ertr_coroutine_basic) { run_ertr_scl([]() -> ertr::future<> { -- 2.39.5