From fb5a856ceae7f0a450a6857d7d149fa63d4389d5 Mon Sep 17 00:00:00 2001 From: Johan Wikman Date: Tue, 24 Apr 2018 15:55:33 +0300 Subject: [PATCH] MXS-1725 Use normal routing route when mocking As results provided directly by filters are now delivered properly, the functionality of the session must be used also when mocking. --- server/modules/filter/cache/test/test_cacheoptions.cc | 10 +++++----- server/modules/filter/test/filtermodule.cc | 5 +++++ server/modules/filter/test/maxscale/mock/session.hh | 5 +++++ 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/server/modules/filter/cache/test/test_cacheoptions.cc b/server/modules/filter/cache/test/test_cacheoptions.cc index 0b3e46dbf..dda31fd30 100644 --- a/server/modules/filter/cache/test/test_cacheoptions.cc +++ b/server/modules/filter/cache/test/test_cacheoptions.cc @@ -158,7 +158,7 @@ int test(mock::Session& session, pStatement = mock::create_com_query(select); cout << "Performing select: \"" << select << "\"" << flush; - filter_session.routeQuery(pStatement); + session.route_query(pStatement); if (!router_session.idle()) { @@ -176,7 +176,7 @@ int test(mock::Session& session, pStatement = mock::create_com_query(select); cout << "Performing same select: \"" << select << "\"" << flush; - filter_session.routeQuery(pStatement); + session.route_query(pStatement); if (tc.should_use) { @@ -216,7 +216,7 @@ int test(mock::Session& session, pStatement = mock::create_com_query("UPDATE tbl SET a=1;"); cout << "Performing update: \"" << update << "\"" << flush; - filter_session.routeQuery(pStatement); + session.route_query(pStatement); if (router_session.idle()) { @@ -233,7 +233,7 @@ int test(mock::Session& session, pStatement = mock::create_com_query(select); cout << "Performing select: \"" << select << "\"" << flush; - filter_session.routeQuery(pStatement); + session.route_query(pStatement); if (router_session.idle()) { @@ -260,7 +260,7 @@ int test(mock::Session& session, pStatement = mock::create_com_query(select); cout << "Performing select: \"" << select << "\"" << flush; - filter_session.routeQuery(pStatement); + session.route_query(pStatement); if (router_session.idle()) { diff --git a/server/modules/filter/test/filtermodule.cc b/server/modules/filter/test/filtermodule.cc index 956007d1c..c73338d7e 100644 --- a/server/modules/filter/test/filtermodule.cc +++ b/server/modules/filter/test/filtermodule.cc @@ -72,6 +72,11 @@ auto_ptr FilterModule::Instance::newSession(MXS_SESSION* if (pFilter_session) { + // TODO: Won't work with multiple filters in chain. + pSession->head.instance = m_pInstance; + pSession->head.session = pFilter_session; + pSession->head.routeQuery = m_module.m_pApi->routeQuery; + sFilter_session.reset(new Session(this, pFilter_session)); } diff --git a/server/modules/filter/test/maxscale/mock/session.hh b/server/modules/filter/test/maxscale/mock/session.hh index 0c1fc6175..8afdc1c3a 100644 --- a/server/modules/filter/test/maxscale/mock/session.hh +++ b/server/modules/filter/test/maxscale/mock/session.hh @@ -66,6 +66,11 @@ public: session_set_trx_state(this, state); } + bool route_query(GWBUF* pBuffer) + { + return session_route_query(this, pBuffer); + } + private: Client& m_client; Dcb m_client_dcb;