From: JINMEI Tatuya Date: Wed, 1 Feb 2012 04:21:03 +0000 (-0800) Subject: [1578] covered some other, non wildcard case scenarios. there's nothing X-Git-Tag: trac2351_base~268^2~4^2~5 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7ee50a91c4e5d294e92e0472e3d05485fc63dd12;p=thirdparty%2Fkea.git [1578] covered some other, non wildcard case scenarios. there's nothing to add in the main code for them, just confirming it also works for these cases. --- diff --git a/src/lib/datasrc/tests/memory_datasrc_unittest.cc b/src/lib/datasrc/tests/memory_datasrc_unittest.cc index 92602c7a38..37731c2506 100644 --- a/src/lib/datasrc/tests/memory_datasrc_unittest.cc +++ b/src/lib/datasrc/tests/memory_datasrc_unittest.cc @@ -289,10 +289,14 @@ protected: // expected_flags is set to either RESULT_NSEC_SIGNED or // RESULT_NSEC3_SIGNED when it's NSEC/NSEC3 signed respectively and // find() is expected to set the corresponding flags. - void wildcardTest(ZoneFinder::FindResultFlags expected_flags = - ZoneFinder::RESULT_DEFAULT); - void doCancelWildcardTest(ZoneFinder::FindResultFlags expected_flags = - ZoneFinder::RESULT_DEFAULT); + void findCheck(ZoneFinder::FindResultFlags expected_flags = + ZoneFinder::RESULT_DEFAULT); + void emptyNodeCheck(ZoneFinder::FindResultFlags expected_flags = + ZoneFinder::RESULT_DEFAULT); + void wildcardCheck(ZoneFinder::FindResultFlags expected_flags = + ZoneFinder::RESULT_DEFAULT); + void doCancelWildcardCheck(ZoneFinder::FindResultFlags expected_flags = + ZoneFinder::RESULT_DEFAULT); public: InMemoryZoneFinderTest() : @@ -823,13 +827,17 @@ TEST_F(InMemoryZoneFinderTest, glue) { * \todo This doesn't do any kind of CNAME and so on. If it isn't * directly there, it just tells it doesn't exist. */ -TEST_F(InMemoryZoneFinderTest, find) { +void +InMemoryZoneFinderTest::findCheck(ZoneFinder::FindResultFlags expected_flags) { // Fill some data inside // Now put all the data we have there. It should throw nothing EXPECT_NO_THROW(EXPECT_EQ(SUCCESS, zone_finder_.add(rr_ns_))); EXPECT_NO_THROW(EXPECT_EQ(SUCCESS, zone_finder_.add(rr_ns_a_))); EXPECT_NO_THROW(EXPECT_EQ(SUCCESS, zone_finder_.add(rr_ns_aaaa_))); EXPECT_NO_THROW(EXPECT_EQ(SUCCESS, zone_finder_.add(rr_a_))); + if ((expected_flags & ZoneFinder::RESULT_NSEC3_SIGNED) != 0) { + EXPECT_EQ(SUCCESS, zone_finder_.add(rr_nsec3_)); + } // These two should be successful findTest(origin_, RRType::NS(), ZoneFinder::SUCCESS, true, rr_ns_); @@ -837,15 +845,30 @@ TEST_F(InMemoryZoneFinderTest, find) { rr_ns_a_); // These domain exist but don't have the provided RRType - findTest(origin_, RRType::AAAA(), ZoneFinder::NXRRSET); - findTest(rr_ns_a_->getName(), RRType::NS(), ZoneFinder::NXRRSET); + findTest(origin_, RRType::AAAA(), ZoneFinder::NXRRSET, true, + ConstRRsetPtr(), expected_flags); + findTest(rr_ns_a_->getName(), RRType::NS(), ZoneFinder::NXRRSET, true, + ConstRRsetPtr(), expected_flags); // These domains don't exist (and one is out of the zone) - findTest(Name("nothere.example.org"), RRType::A(), ZoneFinder::NXDOMAIN); - findTest(Name("example.net"), RRType::A(), ZoneFinder::NXDOMAIN); + findTest(Name("nothere.example.org"), RRType::A(), ZoneFinder::NXDOMAIN, + true, ConstRRsetPtr(), expected_flags); + findTest(Name("example.net"), RRType::A(), ZoneFinder::NXDOMAIN, true, + ConstRRsetPtr(), expected_flags); } -TEST_F(InMemoryZoneFinderTest, emptyNode) { +TEST_F(InMemoryZoneFinderTest, find) { + findCheck(); +} + +TEST_F(InMemoryZoneFinderTest, findNSEC3) { + findCheck(ZoneFinder::RESULT_NSEC3_SIGNED); +} + +void +InMemoryZoneFinderTest::emptyNodeCheck( + ZoneFinder::FindResultFlags expected_flags) +{ /* * The backend RBTree for this test should look like as follows: * example.org @@ -867,21 +890,35 @@ TEST_F(InMemoryZoneFinderTest, emptyNode) { " 300 IN A 192.0.2.1"); EXPECT_EQ(SUCCESS, zone_finder_.add(rrset)); } + if ((expected_flags & ZoneFinder::RESULT_NSEC3_SIGNED) != 0) { + EXPECT_EQ(SUCCESS, zone_finder_.add(rr_nsec3_)); + } // empty node matching, easy case: the node for 'baz' exists with // no data. - findTest(Name("baz.example.org"), RRType::A(), ZoneFinder::NXRRSET); + findTest(Name("baz.example.org"), RRType::A(), ZoneFinder::NXRRSET, true, + ConstRRsetPtr(), expected_flags); // empty node matching, a trickier case: the node for 'foo' is part of // "x.foo", which should be considered an empty node. - findTest(Name("foo.example.org"), RRType::A(), ZoneFinder::NXRRSET); + findTest(Name("foo.example.org"), RRType::A(), ZoneFinder::NXRRSET, true, + ConstRRsetPtr(), expected_flags); // "org" is contained in "example.org", but it shouldn't be treated as // NXRRSET because it's out of zone. // Note: basically we don't expect such a query to be performed (the common // operation is to identify the best matching zone first then perform // search it), but we shouldn't be confused even in the unexpected case. - findTest(Name("org"), RRType::A(), ZoneFinder::NXDOMAIN); + findTest(Name("org"), RRType::A(), ZoneFinder::NXDOMAIN, true, + ConstRRsetPtr(), expected_flags); +} + +TEST_F(InMemoryZoneFinderTest, emptyNode) { + emptyNodeCheck(); +} + +TEST_F(InMemoryZoneFinderTest, emptyNodeNSEC3) { + emptyNodeCheck(ZoneFinder::RESULT_NSEC3_SIGNED); } TEST_F(InMemoryZoneFinderTest, load) { @@ -920,7 +957,7 @@ TEST_F(InMemoryZoneFinderTest, load) { * correctly find the data. */ void -InMemoryZoneFinderTest::wildcardTest( +InMemoryZoneFinderTest::wildcardCheck( ZoneFinder::FindResultFlags expected_flags) { /* @@ -993,12 +1030,12 @@ InMemoryZoneFinderTest::wildcardTest( TEST_F(InMemoryZoneFinderTest, wildcard) { // Normal case - wildcardTest(); + wildcardCheck(); } TEST_F(InMemoryZoneFinderTest, wildcardNSEC3) { // Similar to the previous one, but the zone signed with NSEC3 - wildcardTest(ZoneFinder::RESULT_NSEC3_SIGNED); + wildcardCheck(ZoneFinder::RESULT_NSEC3_SIGNED); } /* @@ -1156,7 +1193,7 @@ TEST_F(InMemoryZoneFinderTest, nestedEmptyWildcard) { // We run this part twice from the below test, in two slightly different // situations void -InMemoryZoneFinderTest::doCancelWildcardTest( +InMemoryZoneFinderTest::doCancelWildcardCheck( ZoneFinder::FindResultFlags expected_flags) { // These should be canceled @@ -1220,7 +1257,7 @@ TEST_F(InMemoryZoneFinderTest, cancelWildcard) { { SCOPED_TRACE("Runnig with single entry under foo.wild.example.org"); - doCancelWildcardTest(); + doCancelWildcardCheck(); } // Try putting another one under foo.wild.... @@ -1229,7 +1266,7 @@ TEST_F(InMemoryZoneFinderTest, cancelWildcard) { EXPECT_EQ(SUCCESS, zone_finder_.add(rr_not_wild_another_)); { SCOPED_TRACE("Runnig with two entries under foo.wild.example.org"); - doCancelWildcardTest(); + doCancelWildcardCheck(); } } @@ -1240,12 +1277,12 @@ TEST_F(InMemoryZoneFinderTest, cancelWildcardNSEC3) { { SCOPED_TRACE("Runnig with single entry under foo.wild.example.org"); - doCancelWildcardTest(ZoneFinder::RESULT_NSEC3_SIGNED); + doCancelWildcardCheck(ZoneFinder::RESULT_NSEC3_SIGNED); } EXPECT_EQ(SUCCESS, zone_finder_.add(rr_not_wild_another_)); { SCOPED_TRACE("Runnig with two entries under foo.wild.example.org"); - doCancelWildcardTest(ZoneFinder::RESULT_NSEC3_SIGNED); + doCancelWildcardCheck(ZoneFinder::RESULT_NSEC3_SIGNED); } }