Commit d26eac8d authored by Michal 'vorner' Vaner's avatar Michal 'vorner' Vaner Committed by Michal 'vorner' Vaner
Browse files

[2862] Tests for subscribing to the readers

parent 465c3330
......@@ -939,3 +939,8 @@ void
AuthSrv::setTCPRecvTimeout(size_t timeout) {
dnss_->setTCPRecvTimeout(timeout);
}
void
AuthSrv::listsReconfigured() {
// TODO: Here comes something.
}
......@@ -273,6 +273,9 @@ public:
/// open forever.
void setTCPRecvTimeout(size_t timeout);
// TODO: Doxygen
void listsReconfigured();
private:
AuthSrvImpl* impl_;
isc::asiolink::SimpleCallback* checkin_;
......
......@@ -39,6 +39,9 @@
#include <auth/statistics_items.h>
#include <auth/datasrc_config.h>
#include <config/tests/fake_session.h>
#include <config/ccsession.h>
#include <util/unittests/mock_socketsession.h>
#include <dns/tests/unittest_util.h>
#include <testutils/dnsmessage_test.h>
......@@ -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", "*"));
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment