]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
test/crimson: adapt to the changes of messenger 38397/head
authorKefu Chai <kchai@redhat.com>
Wed, 2 Dec 2020 10:58:03 +0000 (18:58 +0800)
committerKefu Chai <kchai@redhat.com>
Wed, 2 Dec 2020 11:06:38 +0000 (19:06 +0800)
the crimson::net::Messenger interface was changed in
44585adc78bded751b8b50d6304068a8c5186fa1 and
ff2c3b597de4c5707e18529dfa6bed162026014c, so need to change the tests
accordingly.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/test/crimson/test_alien_echo.cc
src/test/crimson/test_monc.cc

index b5710adcbea07a39af365683a0cb08b1d8f52abf..4434b522be2d29a0f005212f8e56bce6ecafb27e 100644 (file)
@@ -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<seastar::future<>> 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<MPing>()).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<seastar::future<>> 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<ChainedDispatchers>();
-       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<ChainedDispatchers>();
-      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(
index 45335bd5030211b7cfc80d471f383bfc1caef646..f590ce73a148afe50dcf0da6f556e135584fb2a6 100644 (file)
@@ -24,7 +24,6 @@ DummyAuthHandler dummy_handler;
 
 static seastar::future<> test_monc()
 {
-  auto chained_dispatchers = seastar::make_lw_shared<ChainedDispatchers>();
   return crimson::common::sharded_conf().start(EntityName{}, string_view{"ceph"}).then([] {
     std::vector<const char*> 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());