From: Mukund Sivaraman Date: Tue, 17 Sep 2013 13:03:53 +0000 (+0530) Subject: [2751] Add another minor check and adjust tests X-Git-Tag: bind10-1.2.0beta1-release~214^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4bee63eec6164380cc042de3405102a6e4a74b67;p=thirdparty%2Fkea.git [2751] Add another minor check and adjust tests --- diff --git a/src/lib/datasrc/memory/rdataset.cc b/src/lib/datasrc/memory/rdataset.cc index 737ecd6052..b60316c4f7 100644 --- a/src/lib/datasrc/memory/rdataset.cc +++ b/src/lib/datasrc/memory/rdataset.cc @@ -97,6 +97,9 @@ sanityChecks(const ConstRRsetPtr& rrset, const ConstRRsetPtr &sig_rrset, if (sig_rrset && sig_rrset->getRdataCount() == 0) { isc_throw(BadValue, "Empty SIG RRset"); } + if (sig_rrset && sig_rrset->getType() != RRType::RRSIG()) { + isc_throw(BadValue, "SIG RRset doesn't have type RRSIG"); + } if (rrset && sig_rrset && rrset->getClass() != sig_rrset->getClass()) { isc_throw(BadValue, "RR class doesn't match between RRset and RRSIG"); } diff --git a/src/lib/datasrc/tests/memory/rdataset_unittest.cc b/src/lib/datasrc/tests/memory/rdataset_unittest.cc index d5cebdd062..e6fd5cce97 100644 --- a/src/lib/datasrc/tests/memory/rdataset_unittest.cc +++ b/src/lib/datasrc/tests/memory/rdataset_unittest.cc @@ -703,6 +703,9 @@ TEST_F(RdataSetTest, badParams) { const ConstRRsetPtr empty_rrset(new RRset(Name("www.example.com"), RRClass::IN(), RRType::A(), RRTTL(3600))); + const ConstRRsetPtr empty_rrsig(new RRset(Name("www.example.com"), + RRClass::IN(), RRType::RRSIG(), + RRTTL(3600))); const ConstRRsetPtr a_rrset = textToRRset("www.example.com. 3600 IN A " "192.0.2.1"); const ConstRRsetPtr aaaa_rrset = textToRRset("www.example.com. 3600 IN AAAA " @@ -722,7 +725,10 @@ TEST_F(RdataSetTest, badParams) { EXPECT_THROW(RdataSet::create(mem_sgmt_, encoder_, empty_rrset, sig_rrset), isc::BadValue); // The same for rrsig - EXPECT_THROW(RdataSet::create(mem_sgmt_, encoder_, a_rrset, empty_rrset), + EXPECT_THROW(RdataSet::create(mem_sgmt_, encoder_, a_rrset, empty_rrsig), + isc::BadValue); + // Mismatched type + EXPECT_THROW(RdataSet::create(mem_sgmt_, encoder_, empty_rrset, a_rrset), isc::BadValue); // Similar for subtract EXPECT_THROW(RdataSet::subtract(mem_sgmt_, encoder_, empty_rrset,