]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[2751] Add another minor check and adjust tests
authorMukund Sivaraman <muks@isc.org>
Tue, 17 Sep 2013 13:03:53 +0000 (18:33 +0530)
committerMukund Sivaraman <muks@isc.org>
Tue, 17 Sep 2013 13:04:04 +0000 (18:34 +0530)
src/lib/datasrc/memory/rdataset.cc
src/lib/datasrc/tests/memory/rdataset_unittest.cc

index 737ecd605209a2d340ce87af4530b23bdaa9007f..b60316c4f7da878f972cf326eab998f99f91ab08 100644 (file)
@@ -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");
     }
index d5cebdd062a0345218c06e4830757e485dd4c32a..e6fd5cce970c8ff3964fe7b2dd3c9926064309bb 100644 (file)
@@ -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,