Commit f16de892 authored by Michal 'vorner' Vaner's avatar Michal 'vorner' Vaner
Browse files

[1177] Little bit more tests

parent 4e93ba21
......@@ -127,6 +127,7 @@ const char* const TEST_RECORDS[][5] = {
{"delegation.example.org.", "NS", "3600", "", "ns.example.com."},
{"delegation.example.org.", "NS", "3600", "",
"ns.delegation.example.org."},
{"delegation.example.org.", "DS", "3600", "", "1 RSAMD5 2 abcd"},
{"delegation.example.org.", "RRSIG", "3600", "", "NS 5 3 3600 "
"20000101000000 20000201000000 12345 example.org. FAKEFAKEFAKE"},
{"ns.delegation.example.org.", "A", "3600", "", "192.0.2.1"},
......@@ -171,11 +172,17 @@ const char* const TEST_RECORDS[][5] = {
{"*.delegatedwild.example.org.", "A", "3600", "", "192.0.2.5"},
{"wild.*.foo.example.org.", "A", "3600", "", "192.0.2.5"},
{"wild.*.foo.*.bar.example.org.", "A", "3600", "", "192.0.2.5"},
{"*.cnamewild.example.org.", "CNAME", "3600", "", "www.example.org."},
{"*.nswild.example.org.", "NS", "3600", "", "ns.example.com."},
// For finding previous, this one is the last one in the zone
{"zzz.example.org.", "NSEC", "3600", "", "example.org NSEC"},
// For NSEC empty non-terminal
{"l.example.org.", "NSEC", "3600", "", "empty.nonterminal.example.org. NSEC"},
{"empty.nonterminal.example.org.", "A", "3600", "", "192.0.2.1"},
// Invalid rdata
{"invalidrdata.example.org.", "A", "3600", "", "Bunch of nonsense"},
{"invalidrdata2.example.org.", "A", "3600", "", "192.0.2.1"},
{"invalidrdata2.example.org.", "RRSIG", "3600", "", "Nonsense"},
{NULL, NULL, NULL, NULL, NULL},
};
......@@ -557,6 +564,8 @@ public:
} else if (rname == "org.example.www2." ||
rname == "org.example.www1.") {
return ("www.example.org.");
} else if (rname == "org.example.badnsec2.") {
return ("badnsec1.example.org.");
} else if (rname == "org.example.notimplnsec." ||
rname == "org.example.wild.here.") {
isc_throw(isc::NotImplemented, "Not implemented in this test");
......@@ -1578,6 +1587,22 @@ TYPED_TEST(DatabaseClientTest, wildcard) {
// FIXME: What should be returned in this case? How does the
// DNSSEC logic handle it?
}
// Some strange things in the wild node
this->expected_rdatas_.clear();
this->expected_rdatas_.push_back("www.example.org.");
this->expected_sig_rdatas_.clear();
doFindTest(*finder, isc::dns::Name("a.cnamewild.example.org."),
isc::dns::RRType::TXT(), isc::dns::RRType::CNAME(),
this->rrttl_, ZoneFinder::CNAME,
this->expected_rdatas_, this->expected_sig_rdatas_);
this->expected_rdatas_.clear();
this->expected_rdatas_.push_back("ns.example.com.");
doFindTest(*finder, isc::dns::Name("a.nswild.example.org."),
isc::dns::RRType::TXT(), isc::dns::RRType::NS(),
this->rrttl_, ZoneFinder::DELEGATION,
this->expected_rdatas_, this->expected_sig_rdatas_);
}
TYPED_TEST(DatabaseClientTest, NXRRSET_NSEC) {
......@@ -2305,4 +2330,21 @@ TYPED_TEST(DatabaseClientTest, previous) {
}
}
TYPED_TEST(DatabaseClientTest, invalidRdata) {
shared_ptr<DatabaseClient::Finder> finder(this->getFinder());
EXPECT_THROW(finder->find(Name("invalidrdata.example.org."), RRType::A()),
DataSourceError);
EXPECT_THROW(finder->find(Name("invalidrdata2.example.org."), RRType::A()),
DataSourceError);
}
TEST_F(MockDatabaseClientTest, missingNSEC) {
shared_ptr<DatabaseClient::Finder> finder(this->getFinder());
EXPECT_THROW(finder->find(Name("badnsec2.example.org."), RRType::A(), NULL,
ZoneFinder::FIND_DNSSEC),
DataSourceError);
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment