|
@@ -481,6 +481,39 @@ TEST_F(DataSrcTest, NSDelegation) {
|
|
|
it->next();
|
|
|
EXPECT_TRUE(it->isLast());
|
|
|
}
|
|
|
+
|
|
|
+TEST_F(DataSrcTest, ANYDelegation) {
|
|
|
+ // An ANY query at a zone cut should behave the same as any other
|
|
|
+ // delegation
|
|
|
+ readAndProcessQuery(msg, "testdata/q_subzone_any");
|
|
|
+
|
|
|
+ headerCheck(msg, Rcode::NOERROR(), true, false, true, 0, 5, 2);
|
|
|
+
|
|
|
+ RRsetIterator rit = msg.beginSection(Section::AUTHORITY());
|
|
|
+ RRsetPtr rrset = *rit;
|
|
|
+ EXPECT_EQ(Name("subzone.example.com."), rrset->getName());
|
|
|
+ EXPECT_EQ(RRType::NS(), rrset->getType());
|
|
|
+ EXPECT_EQ(RRClass::IN(), rrset->getClass());
|
|
|
+
|
|
|
+ RdataIteratorPtr it = rrset->getRdataIterator();
|
|
|
+ it->first();
|
|
|
+ EXPECT_EQ("ns1.subzone.example.com.", it->getCurrent().toText());
|
|
|
+ it->next();
|
|
|
+ EXPECT_FALSE(it->isLast());
|
|
|
+
|
|
|
+ rit = msg.beginSection(Section::ADDITIONAL());
|
|
|
+ rrset = *rit;
|
|
|
+ EXPECT_EQ(Name("ns1.subzone.example.com"), rrset->getName());
|
|
|
+ EXPECT_EQ(RRType::A(), rrset->getType());
|
|
|
+ EXPECT_EQ(RRClass::IN(), rrset->getClass());
|
|
|
+
|
|
|
+ it = rrset->getRdataIterator();
|
|
|
+ it->first();
|
|
|
+ EXPECT_EQ("192.168.3.1", it->getCurrent().toText());
|
|
|
+ it->next();
|
|
|
+ EXPECT_TRUE(it->isLast());
|
|
|
+}
|
|
|
+
|
|
|
TEST_F(DataSrcTest, DS) {
|
|
|
readAndProcessQuery(msg, "testdata/q_subzone_ds");
|
|
|
|