From: Matan Breizman Date: Sun, 2 Feb 2025 15:06:21 +0000 (+0000) Subject: test/crimson/test_crimson_coroutine: add test_coroutine_loops X-Git-Tag: v20.3.0~387^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6533f261dc368ab3e28f123458df9eaa88859696;p=ceph.git test/crimson/test_crimson_coroutine: add test_coroutine_loops Signed-off-by: Matan Breizman --- diff --git a/src/test/crimson/test_crimson_coroutine.cc b/src/test/crimson/test_crimson_coroutine.cc index 2b19ca07d8e0..86743b374dcd 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<> {