Browse Source

[1614] don't use masterLoad() for bad RRSIG data with mixed cover types;
the change introduced in this branch breaks the assumption of the
callback function used in the test code.

JINMEI Tatuya 13 years ago
parent
commit
af9d2a8ef5
1 changed files with 8 additions and 3 deletions
  1. 8 3
      src/lib/datasrc/tests/memory_datasrc_unittest.cc

+ 8 - 3
src/lib/datasrc/tests/memory_datasrc_unittest.cc

@@ -1269,9 +1269,14 @@ TEST_F(InMemoryZoneFinderTest, addbadRRsig) {
 
     // RRSIG with mixed covered types
     zone_finder_.add(rr_a_);    // make sure the covered name exists
-    EXPECT_THROW(zone_finder_.add(textToRRset(string(rrsig_a_txt) +
-                                              string(rrsig_ns_txt))),
-                 InMemoryZoneFinder::AddError);
+    // textToRRset() doesn't work as intended for this pathological case,
+    // so we need to construct the RRset by hand.
+    RRsetPtr rrset(new RRset(origin_, class_, RRType::RRSIG(), RRTTL(300)));
+    rrset->addRdata(generic::RRSIG("A 5 3 3600 20000101000000 20000201000000 "
+                                   "12345 example.org. FAKEFAKEFAKE"));
+    rrset->addRdata(generic::RRSIG("NS 5 3 3600 20000101000000 20000201000000 "
+                                   "54321 example.org. FAKEFAKEFAKEFAKE"));
+    EXPECT_THROW(zone_finder_.add(rrset), InMemoryZoneFinder::AddError);
 
     // An attempt of overriding an existing RRSIG.  The current implementation
     // prohibits that.