From: JINMEI Tatuya Date: Tue, 31 Jan 2012 23:54:01 +0000 (-0800) Subject: [1578] set RESULT_WILDCARD for wildcard answers to type-any query X-Git-Tag: trac2351_base~268^2~4^2~9 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b614d6fb5ce0950bd212f5b6b01daa634fa5bb22;p=thirdparty%2Fkea.git [1578] set RESULT_WILDCARD for wildcard answers to type-any query --- diff --git a/src/lib/datasrc/memory_datasrc.cc b/src/lib/datasrc/memory_datasrc.cc index fafa9b886a..91e16f2440 100644 --- a/src/lib/datasrc/memory_datasrc.cc +++ b/src/lib/datasrc/memory_datasrc.cc @@ -801,7 +801,7 @@ struct InMemoryZoneFinder::InMemoryZoneFinderImpl { } LOG_DEBUG(logger, DBG_TRACE_DATA, DATASRC_MEM_ANY_SUCCESS). arg(name); - return (FindResult(SUCCESS, ConstRRsetPtr())); + return (createFindResult(SUCCESS, ConstRRsetPtr(), rename)); } found = node->getData()->find(type); diff --git a/src/lib/datasrc/tests/memory_datasrc_unittest.cc b/src/lib/datasrc/tests/memory_datasrc_unittest.cc index 330ee0a630..36f99606ba 100644 --- a/src/lib/datasrc/tests/memory_datasrc_unittest.cc +++ b/src/lib/datasrc/tests/memory_datasrc_unittest.cc @@ -470,6 +470,8 @@ public: */ void findAllTest(const Name& name, ZoneFinder::Result result, const vector& expected_rrsets, + ZoneFinder::FindResultFlags expected_flags = + ZoneFinder::RESULT_DEFAULT, InMemoryZoneFinder* finder = NULL, const ConstRRsetPtr &rrset_result = ConstRRsetPtr(), ZoneFinder::FindOptions options = @@ -479,10 +481,21 @@ public: finder = &zone_finder_; } std::vector target; - ZoneFinder::FindResult findResult(finder->findAll(name, target, - options)); - EXPECT_EQ(result, findResult.code); - EXPECT_EQ(rrset_result, findResult.rrset); + ZoneFinder::FindResult find_result(finder->findAll(name, target, + options)); + EXPECT_EQ(result, find_result.code); + if (!rrset_result) { + EXPECT_FALSE(find_result.rrset); + } else { + ASSERT_TRUE(find_result.rrset); + rrsetCheck(rrset_result, find_result.rrset); + } + EXPECT_EQ((expected_flags & ZoneFinder::RESULT_WILDCARD) != 0, + find_result.isWildcard()); + EXPECT_EQ((expected_flags & ZoneFinder::RESULT_NSEC_SIGNED) + != 0, find_result.isNSECSigned()); + EXPECT_EQ((expected_flags & ZoneFinder::RESULT_NSEC3_SIGNED) + != 0, find_result.isNSEC3Signed()); rrsetsCheck(expected_rrsets.begin(), expected_rrsets.end(), target.begin(), target.end()); } @@ -737,11 +750,13 @@ TEST_F(InMemoryZoneFinderTest, findAny) { // zone cut findAllTest(rr_child_ns_->getName(), ZoneFinder::DELEGATION, - vector(), NULL, rr_child_ns_); + vector(), ZoneFinder::RESULT_DEFAULT, + NULL, rr_child_ns_); // glue for this zone cut findAllTest(rr_child_glue_->getName(),ZoneFinder::DELEGATION, - vector(), NULL, rr_child_ns_); + vector(), ZoneFinder::RESULT_DEFAULT, + NULL, rr_child_ns_); } TEST_F(InMemoryZoneFinderTest, glue) { @@ -1002,7 +1017,7 @@ TEST_F(InMemoryZoneFinderTest, anyWildcard) { expected->addRdata(rr_wild_->getRdataIterator()->getCurrent()); expected_sets.push_back(expected); findAllTest(Name("a.wild.example.org"), ZoneFinder::SUCCESS, - expected_sets); + expected_sets, ZoneFinder::RESULT_WILDCARD); } } @@ -1037,7 +1052,7 @@ TEST_F(InMemoryZoneFinderTest, emptyWildcard) { vector()); findAllTest(Name("a.foo.example.org"), ZoneFinder::NXRRSET, - vector()); + vector(), ZoneFinder::RESULT_WILDCARD); } {