From 2415168b990bdbcf1fc12e7fcf696926a6fa50e1 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Wed, 2 Dec 2020 18:58:03 +0800 Subject: [PATCH] test/crimson: adapt to the changes of messenger the crimson::net::Messenger interface was changed in 44585adc78bded751b8b50d6304068a8c5186fa1 and ff2c3b597de4c5707e18529dfa6bed162026014c, so need to change the tests accordingly. Signed-off-by: Kefu Chai --- src/test/crimson/test_alien_echo.cc | 29 +++++++++++++++-------------- src/test/crimson/test_monc.cc | 8 +++----- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/src/test/crimson/test_alien_echo.cc b/src/test/crimson/test_alien_echo.cc index b5710adcbea..4434b522be2 100644 --- a/src/test/crimson/test_alien_echo.cc +++ b/src/test/crimson/test_alien_echo.cc @@ -41,16 +41,18 @@ struct Server { crimson::common::Throttle byte_throttler; crimson::net::MessengerRef msgr; crimson::auth::DummyAuthClientServer dummy_auth; - struct ServerDispatcher : crimson::net::Dispatcher { + struct ServerDispatcher final : crimson::net::Dispatcher { unsigned count = 0; seastar::condition_variable on_reply; - seastar::future<> ms_dispatch(crimson::net::Connection* c, - MessageRef m) override { + std::optional> ms_dispatch(crimson::net::ConnectionRef c, + MessageRef m) final + { std::cout << "server got ping " << *m << std::endl; // reply with a pong return c->send(make_message()).then([this] { ++count; on_reply.signal(); + return seastar::now(); }); } } dispatcher; @@ -67,11 +69,12 @@ struct Client { crimson::common::Throttle byte_throttler; crimson::net::MessengerRef msgr; crimson::auth::DummyAuthClientServer dummy_auth; - struct ClientDispatcher : crimson::net::Dispatcher { + struct ClientDispatcher final : crimson::net::Dispatcher { unsigned count = 0; seastar::condition_variable on_reply; - seastar::future<> ms_dispatch(crimson::net::Connection* c, - MessageRef m) override { + std::optional> ms_dispatch(crimson::net::ConnectionRef c, + MessageRef m) final + { std::cout << "client got pong " << *m << std::endl; ++count; on_reply.signal(); @@ -180,11 +183,11 @@ seastar_echo(const entity_addr_t addr, echo_role role, unsigned count) server.msgr->set_auth_client(&server.dummy_auth); server.msgr->set_auth_server(&server.dummy_auth); return server.msgr->bind(entity_addrvec_t{addr} - ).then([&server] { - auto chained_dispatchers = seastar::make_lw_shared(); - chained_dispatchers->push_back(server.dispatcher); - return server.msgr->start(chained_dispatchers); - }).then([&dispatcher=server.dispatcher, count] { + ).safe_then([&server] { + return server.msgr->start({&server.dispatcher}); + }, crimson::net::Messenger::bind_ertr::all_same_way([](auto& e) { + ceph_abort_msg("bind failed"); + })).then([&dispatcher=server.dispatcher, count] { return dispatcher.on_reply.wait([&dispatcher, count] { return dispatcher.count >= count; }); @@ -205,9 +208,7 @@ seastar_echo(const entity_addr_t addr, echo_role role, unsigned count) client.msgr->set_require_authorizer(false); client.msgr->set_auth_client(&client.dummy_auth); client.msgr->set_auth_server(&client.dummy_auth); - auto chained_dispatchers = seastar::make_lw_shared(); - chained_dispatchers->push_back(client.dispatcher); - return client.msgr->start(chained_dispatchers).then( + return client.msgr->start({&client.dispatcher}).then( [addr, &client, &disp=client.dispatcher, count] { auto conn = client.msgr->connect(addr, entity_name_t::TYPE_OSD); return seastar::do_until( diff --git a/src/test/crimson/test_monc.cc b/src/test/crimson/test_monc.cc index 45335bd5030..f590ce73a14 100644 --- a/src/test/crimson/test_monc.cc +++ b/src/test/crimson/test_monc.cc @@ -24,7 +24,6 @@ DummyAuthHandler dummy_handler; static seastar::future<> test_monc() { - auto chained_dispatchers = seastar::make_lw_shared(); return crimson::common::sharded_conf().start(EntityName{}, string_view{"ceph"}).then([] { std::vector args; std::string cluster; @@ -39,7 +38,7 @@ static seastar::future<> test_monc() return conf.parse_config_files(conf_file_list); }).then([] { return crimson::common::sharded_perf_coll().start(); - }).then([chained_dispatchers]() mutable { + }).then([]() mutable { auto msgr = crimson::net::Messenger::create(entity_name_t::OSD(0), "monc", 0); auto& conf = crimson::common::local_conf(); if (conf->ms_crc_data) { @@ -50,9 +49,8 @@ static seastar::future<> test_monc() } msgr->set_require_authorizer(false); return seastar::do_with(MonClient{*msgr, dummy_handler}, - [msgr, chained_dispatchers](auto& monc) mutable { - chained_dispatchers->push_back(monc); - return msgr->start(chained_dispatchers).then([&monc] { + [msgr](auto& monc) mutable { + return msgr->start({&monc}).then([&monc] { return seastar::with_timeout( seastar::lowres_clock::now() + std::chrono::seconds{10}, monc.start()); -- 2.47.3