From 98d53e8ea448d641e54691ca12736a3e58aa9284 Mon Sep 17 00:00:00 2001 From: Haomai Wang Date: Tue, 21 Jul 2015 17:11:14 +0800 Subject: [PATCH] TestMsgr: Add message source check for local message dispatch Signed-off-by: Haomai Wang --- src/test/msgr/test_msgr.cc | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/test/msgr/test_msgr.cc b/src/test/msgr/test_msgr.cc index 43d164d23c7b9..f8f1928de2e07 100644 --- a/src/test/msgr/test_msgr.cc +++ b/src/test/msgr/test_msgr.cc @@ -87,10 +87,11 @@ class FakeDispatcher : public Dispatcher { bool got_new; bool got_remote_reset; bool got_connect; + bool loopback; FakeDispatcher(bool s): Dispatcher(g_ceph_context), lock("FakeDispatcher::lock"), is_server(s), got_new(false), got_remote_reset(false), - got_connect(false) {} + got_connect(false), loopback(false) {} bool ms_can_fast_dispatch_any() const { return true; } bool ms_can_fast_dispatch(Message *m) const { switch (m->get_type()) { @@ -177,7 +178,12 @@ class FakeDispatcher : public Dispatcher { s->count++; cerr << __func__ << " conn: " << m->get_connection() << " session " << s << " count: " << s->count << std::endl; if (is_server) { - reply_message(m); + if (loopback) + assert(m->get_source().is_osd()); + else + reply_message(m); + } else if (loopback) { + assert(m->get_source().is_client()); } got_new = true; cond.Signal(); @@ -256,6 +262,7 @@ TEST_P(MessengerTest, SimpleTest) { ASSERT_FALSE(conn->is_connected()); // 5. loopback connection + srv_dispatcher.loopback = true; conn = client_msgr->get_loopback_connection(); { m = new MPing(); @@ -265,6 +272,7 @@ TEST_P(MessengerTest, SimpleTest) { cli_dispatcher.cond.Wait(cli_dispatcher.lock); cli_dispatcher.got_new = false; } + srv_dispatcher.loopback = false; ASSERT_TRUE(static_cast(conn->get_priv())->get_count() == 1); client_msgr->shutdown(); client_msgr->wait(); -- 2.39.5