test/crimson: adapt to the changes of messenger

the crimson::net::Messenger interface was changed in
44585adc78 and
ff2c3b597d, so need to change the tests
accordingly.

Signed-off-by: Kefu Chai <kchai@redhat.com>
This commit is contained in:
Kefu Chai 2020-12-02 18:58:03 +08:00
parent 22e63b72de
commit 2415168b99
2 changed files with 18 additions and 19 deletions

View 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(

View 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());