From: Michal 'vorner' Vaner Date: Mon, 8 Jul 2013 10:14:50 +0000 (+0200) Subject: [2862] Tests for subscribing to the readers X-Git-Tag: bind10-1.2.0beta1-release~317^2~21 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=d26eac8dfc0780bd6211ff90f9d922bbe2bf7edb;p=thirdparty%2Fkea.git [2862] Tests for subscribing to the readers --- diff --git a/src/bin/auth/auth_srv.cc b/src/bin/auth/auth_srv.cc index 27779a9c6e..c19c17de19 100644 --- a/src/bin/auth/auth_srv.cc +++ b/src/bin/auth/auth_srv.cc @@ -939,3 +939,8 @@ void AuthSrv::setTCPRecvTimeout(size_t timeout) { dnss_->setTCPRecvTimeout(timeout); } + +void +AuthSrv::listsReconfigured() { + // TODO: Here comes something. +} diff --git a/src/bin/auth/auth_srv.h b/src/bin/auth/auth_srv.h index 8ad72bef90..018ccd2fa4 100644 --- a/src/bin/auth/auth_srv.h +++ b/src/bin/auth/auth_srv.h @@ -273,6 +273,9 @@ public: /// open forever. void setTCPRecvTimeout(size_t timeout); + // TODO: Doxygen + void listsReconfigured(); + private: AuthSrvImpl* impl_; isc::asiolink::SimpleCallback* checkin_; diff --git a/src/bin/auth/tests/auth_srv_unittest.cc b/src/bin/auth/tests/auth_srv_unittest.cc index f17d91eca2..7a4d9505a1 100644 --- a/src/bin/auth/tests/auth_srv_unittest.cc +++ b/src/bin/auth/tests/auth_srv_unittest.cc @@ -39,6 +39,9 @@ #include #include +#include +#include + #include #include #include @@ -265,14 +268,15 @@ updateDatabase(AuthSrv& server, const char* params) { void updateInMemory(AuthSrv& server, const char* origin, const char* filename, - bool with_static = true) + bool with_static = true, bool mapped = false) { string spec_txt = "{" "\"IN\": [{" " \"type\": \"MasterFiles\"," " \"params\": {" " \"" + string(origin) + "\": \"" + string(filename) + "\"" - " }," + " }," + + string(mapped ? "\"cache-type\": \"mapped\"," : "") + " \"cache-enable\": true" "}]"; if (with_static) { @@ -2138,4 +2142,30 @@ TEST_F(AuthSrvTest, loadZoneCommand) { sendCommand(server, "loadzone", args, 0); } +// Test that the auth server subscribes to the segment readers group when +// there's a remotely mapped segment. +TEST_F(AuthSrvTest, postReconfigure) { + FakeSession session(ElementPtr(new ListElement), + ElementPtr(new ListElement), + ElementPtr(new ListElement)); + const string specfile(string(TEST_OWN_DATA_DIR) + "/spec.spec"); + session.getMessages()->add(isc::config::createAnswer()); + isc::config::ModuleCCSession mccs(specfile, session, NULL, NULL, false, + false); + server.setConfigSession(&mccs); + // First, no lists are there, so no reason to subscribe + server.listsReconfigured(); + EXPECT_FALSE(session.haveSubscription("SegmentReader", "*")); + // Enable remote segment + updateInMemory(server, "example.", CONFIG_INMEMORY_EXAMPLE, false, true); + { + DataSrcClientsMgr &mgr(server.getDataSrcClientsMgr()); + DataSrcClientsMgr::Holder holder(mgr); + EXPECT_EQ(SEGMENT_WAITING, holder.findClientList(RRClass::IN())-> + getStatus()[0].getSegmentState()); + } + server.listsReconfigured(); + EXPECT_TRUE(session.haveSubscription("SegmentReader", "*")); +} + }