From: Jelte Jansen Date: Mon, 5 Mar 2012 13:44:43 +0000 (+0100) Subject: [1612] address review comments (style mostly) X-Git-Tag: trac2351_base~226^2~116^2~41^2~52^2~2^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=bc65585535ce775f6a5cf8dae25dfbda98a489ae;p=thirdparty%2Fkea.git [1612] address review comments (style mostly) indentation, spaces, and one loop instead of separate tests --- diff --git a/src/bin/auth/tests/auth_srv_unittest.cc b/src/bin/auth/tests/auth_srv_unittest.cc index b89bf36fac..5a02f57a53 100644 --- a/src/bin/auth/tests/auth_srv_unittest.cc +++ b/src/bin/auth/tests/auth_srv_unittest.cc @@ -87,7 +87,11 @@ protected: server.setXfrinSession(¬ify_session); server.setStatisticsSession(&statistics_session); } + virtual void processMessage() { + // If processMessage has been called before, parse_message needs + // to be reset. If it hasn't, there's no harm in doing so + parse_message->clear(Message::PARSE); server.processMessage(*io_message, parse_message, response_obuffer, &dnsserv); } @@ -1058,13 +1062,13 @@ namespace { /// A the possible methods to throw in, either in FakeInMemoryClient or /// FakeZoneFinder enum ThrowWhen { - throw_never, - throw_at_find_zone, - throw_at_get_origin, - throw_at_get_class, - throw_at_find, - throw_at_find_all, - throw_at_find_nsec3 + THROW_NEVER, + THROW_AT_FIND_ZONE, + THROW_AT_GET_ORIGIN, + THROW_AT_GET_CLASS, + THROW_AT_FIND, + THROW_AT_FIND_ALL, + THROW_AT_FIND_NSEC3 }; /// convenience function to check whether and what to throw @@ -1097,13 +1101,13 @@ public: virtual isc::dns::Name getOrigin() const { - checkThrow(throw_at_get_origin, throw_when_, isc_exception_); + checkThrow(THROW_AT_GET_ORIGIN, throw_when_, isc_exception_); return (real_zone_finder_->getOrigin()); } virtual isc::dns::RRClass getClass() const { - checkThrow(throw_at_get_class, throw_when_, isc_exception_); + checkThrow(THROW_AT_GET_CLASS, throw_when_, isc_exception_); return (real_zone_finder_->getClass()); } @@ -1112,22 +1116,22 @@ public: const isc::dns::RRType& type, isc::datasrc::ZoneFinder::FindOptions options) { - checkThrow(throw_at_find, throw_when_, isc_exception_); + checkThrow(THROW_AT_FIND, throw_when_, isc_exception_); return (real_zone_finder_->find(name, type, options)); } virtual FindResult findAll(const isc::dns::Name& name, - std::vector &target, - const FindOptions options = FIND_DEFAULT) + std::vector &target, + const FindOptions options = FIND_DEFAULT) { - checkThrow(throw_at_find_all, throw_when_, isc_exception_); + checkThrow(THROW_AT_FIND_ALL, throw_when_, isc_exception_); return (real_zone_finder_->findAll(name, target, options)); }; virtual FindNSEC3Result - findNSEC3(const isc::dns::Name& name,bool recursive) { - checkThrow(throw_at_find_nsec3, throw_when_, isc_exception_); + findNSEC3(const isc::dns::Name& name, bool recursive) { + checkThrow(THROW_AT_FIND_NSEC3, throw_when_, isc_exception_); return (real_zone_finder_->findNSEC3(name, recursive)); }; @@ -1166,13 +1170,13 @@ public: /// \brief proxy call for findZone /// - /// if this instance was constructed with throw_shen set to find_zone, + /// if this instance was constructed with throw_when set to find_zone, /// this method will throw. Otherwise, it will return a FakeZoneFinder /// instance which will throw at the method specified at the /// construction of this instance. virtual FindResult findZone(const isc::dns::Name& name) const { - checkThrow(throw_at_find_zone, throw_when_, isc_exception_); + checkThrow(THROW_AT_FIND_ZONE, throw_when_, isc_exception_); const FindResult result = real_client_->findZone(name); return (FindResult(result.code, isc::datasrc::ZoneFinderPtr( new FakeZoneFinder(result.zone_finder, @@ -1198,7 +1202,7 @@ TEST_F(AuthSrvTest, queryWithInMemoryClientProxy) { AuthSrv::InMemoryClientPtr fake_client( new FakeInMemoryClient(server.getInMemoryClient(rrclass), - throw_never, + THROW_NEVER, false)); ASSERT_NE(AuthSrv::InMemoryClientPtr(), server.getInMemoryClient(rrclass)); @@ -1237,41 +1241,33 @@ setupThrow(AuthSrv* server, const char *config, ThrowWhen throw_when, server->setInMemoryClient(isc::dns::RRClass::IN(), fake_client); } -// Throw isc::Exception at findZone(), should result in SERVFAIL -TEST_F(AuthSrvTest, queryWithInMemoryClientProxyFindZone) { - createDataFromFile("nsec3query_nodnssec_fromWire.wire"); - - setupThrow(&server, CONFIG_INMEMORY_EXAMPLE, throw_at_find_zone, true); - processAndCheckSERVFAIL(); -} - -// Throw std::exception at findZone(), should result in no answer -TEST_F(AuthSrvTest, queryWithInMemoryClientProxyFindZoneStdException) { - createDataFromFile("nsec3query_nodnssec_fromWire.wire"); - - setupThrow(&server, CONFIG_INMEMORY_EXAMPLE, throw_at_find_zone, false); - processAndCheckSERVFAIL(); -} - -// Throw isc::Exception at getOrigin(), should result in SERVFAIL -TEST_F(AuthSrvTest, queryWithInMemoryClientProxyGetOrigin) { - createDataFromFile("nsec3query_nodnssec_fromWire.wire"); - setupThrow(&server, CONFIG_INMEMORY_EXAMPLE, throw_at_get_origin, true); - processAndCheckSERVFAIL(); -} - -// Throw std::exception at findZone(), should result in SERVFAIL -TEST_F(AuthSrvTest, queryWithInMemoryClientProxyGetOriginStdException) { - createDataFromFile("nsec3query_nodnssec_fromWire.wire"); - setupThrow(&server, CONFIG_INMEMORY_EXAMPLE, throw_at_get_origin, true); - processAndCheckSERVFAIL(); +TEST_F(AuthSrvTest, queryWithThrowingProxyServfails) { + // Test the common cases, all of which should simply return SERVFAIL + // Use THROW_NEVER as end marker + ThrowWhen throws[] = { THROW_AT_FIND_ZONE, + THROW_AT_GET_ORIGIN, + THROW_AT_FIND, + THROW_AT_FIND_NSEC3, + THROW_NEVER }; + UnitTestUtil::createDNSSECRequestMessage(request_message, opcode, + default_qid, Name("foo.example."), + RRClass::IN(), RRType::TXT()); + for (ThrowWhen* when(throws); *when != THROW_NEVER; ++when) { + createRequestPacket(request_message, IPPROTO_UDP); + setupThrow(&server, CONFIG_INMEMORY_EXAMPLE, *when, true); + processAndCheckSERVFAIL(); + // To be sure, check same for non-isc-exceptions + createRequestPacket(request_message, IPPROTO_UDP); + setupThrow(&server, CONFIG_INMEMORY_EXAMPLE, *when, false); + processAndCheckSERVFAIL(); + } } // Throw isc::Exception in getClass(). (Currently?) getClass is not called // in the processMessage path, so this should result in a normal answer TEST_F(AuthSrvTest, queryWithInMemoryClientProxyGetClass) { createDataFromFile("nsec3query_nodnssec_fromWire.wire"); - setupThrow(&server, CONFIG_INMEMORY_EXAMPLE, throw_at_get_class, true); + setupThrow(&server, CONFIG_INMEMORY_EXAMPLE, THROW_AT_GET_CLASS, true); // getClass is not called so it should just answer server.processMessage(*io_message, parse_message, response_obuffer, @@ -1282,38 +1278,4 @@ TEST_F(AuthSrvTest, queryWithInMemoryClientProxyGetClass) { opcode.getCode(), QR_FLAG | AA_FLAG, 1, 1, 2, 1); } -// Throw isc::Exception in find(), should result in SERVFAIL -TEST_F(AuthSrvTest, queryWithInMemoryClientProxyFind) { - createDataFromFile("nsec3query_nodnssec_fromWire.wire"); - setupThrow(&server, CONFIG_INMEMORY_EXAMPLE, throw_at_find, true); - processAndCheckSERVFAIL(); -} - -// Throw std::exception at find(), should result in no answer -TEST_F(AuthSrvTest, queryWithInMemoryClientProxyFindStdException) { - createDataFromFile("nsec3query_nodnssec_fromWire.wire"); - setupThrow(&server, CONFIG_INMEMORY_EXAMPLE, throw_at_find, false); - processAndCheckSERVFAIL(); -} - -// Throw isc::Exception in findNSEC3(), should result in SERVFAIL -TEST_F(AuthSrvTest, queryWithInMemoryClientProxyFindNSEC3) { - UnitTestUtil::createDNSSECRequestMessage(request_message, opcode, - default_qid, Name("foo.example."), - RRClass::IN(), RRType::TXT()); - createRequestPacket(request_message, IPPROTO_UDP); - setupThrow(&server, CONFIG_INMEMORY_EXAMPLE, throw_at_find_nsec3, true); - processAndCheckSERVFAIL(); -} - -// Throw std::exception at findNSEC3(), should result in no answer -TEST_F(AuthSrvTest, queryWithInMemoryClientProxyFindNSEC3StdException) { - UnitTestUtil::createDNSSECRequestMessage(request_message, opcode, - default_qid, Name("foo.example."), - RRClass::IN(), RRType::TXT()); - createRequestPacket(request_message, IPPROTO_UDP); - setupThrow(&server, CONFIG_INMEMORY_EXAMPLE, throw_at_find_nsec3, false); - processAndCheckSERVFAIL(); -} - }