BIND 10 trac2268, updated. eb84acab80c1a4f59f7c49ef5214279358e8ed79 [2268] Fix disabled tests without using InMemoryClient::add()
BIND 10 source code commits
bind10-changes at lists.isc.org
Thu Oct 11 14:44:37 UTC 2012
The branch, trac2268 has been updated
via eb84acab80c1a4f59f7c49ef5214279358e8ed79 (commit)
from 31fdd062b59d6ac480ff48cde57e5abad2b3487c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit eb84acab80c1a4f59f7c49ef5214279358e8ed79
Author: Mukund Sivaraman <muks at isc.org>
Date: Thu Oct 11 20:13:05 2012 +0530
[2268] Fix disabled tests without using InMemoryClient::add()
Also remove direct tests for add() as the method has been removed now.
-----------------------------------------------------------------------
Summary of changes:
.../datasrc/tests/memory/memory_client_unittest.cc | 215 +++++++++++---------
1 file changed, 121 insertions(+), 94 deletions(-)
-----------------------------------------------------------------------
diff --git a/src/lib/datasrc/tests/memory/memory_client_unittest.cc b/src/lib/datasrc/tests/memory/memory_client_unittest.cc
index 295c44c..766de2f 100644
--- a/src/lib/datasrc/tests/memory/memory_client_unittest.cc
+++ b/src/lib/datasrc/tests/memory/memory_client_unittest.cc
@@ -87,8 +87,7 @@ private:
MockIterator(const char** rrset_data_ptr, bool pass_empty_rrsig) :
rrset_data_ptr_(rrset_data_ptr),
pass_empty_rrsig_(pass_empty_rrsig)
- {
- }
+ {}
const char** rrset_data_ptr_;
// If true, emulate an unexpected bogus case where an RRSIG RRset is
@@ -124,6 +123,117 @@ public:
}
};
+class MockIteratorRRSIGMixedCovered : public ZoneIterator {
+private:
+ MockIteratorRRSIGMixedCovered(RRClass rrclass) :
+ rrclass_(rrclass),
+ counter_(0)
+ {}
+
+ RRClass rrclass_;
+ int counter_;
+
+public:
+ virtual ConstRRsetPtr getNextRRset() {
+ RRsetPtr rrset;
+
+ switch (counter_) {
+ case 0:
+ rrset.reset(new RRset(Name("example.org"),
+ RRClass::IN(), RRType::SOA(), RRTTL(3600)));
+ rrset->addRdata(generic::SOA(Name("ns1.example.org"),
+ Name("bugs.x.w.example.org"),
+ 2010012601, 3600, 300, 3600000, 1200));
+ break;
+
+ case 1: {
+ rrset.reset(new RRset(Name("example.org"),
+ RRClass::IN(), RRType::A(), RRTTL(3600)));
+ rrset->addRdata(in::A("192.0.2.1"));
+ rrset->addRdata(in::A("192.0.2.2"));
+
+ RRsetPtr rrsig(new RRset(Name("example.org"), rrclass_,
+ RRType::RRSIG(), RRTTL(300)));
+ rrsig->addRdata(generic::RRSIG("A 5 3 "
+ "3600 20000101000000 20000201000000 "
+ "12345 example.org. FAKEFAKEFAKE"));
+ rrsig->addRdata(generic::RRSIG("NS 5 3 "
+ "3600 20000101000000 20000201000000 "
+ "54321 example.org. "
+ "FAKEFAKEFAKEFAKE"));
+ rrset->addRRsig(rrsig);
+ break;
+ }
+
+ default:
+ rrset.reset();
+ }
+
+ if (counter_ < 2) {
+ counter_++;
+ }
+
+ return (rrset);
+ }
+
+ virtual ConstRRsetPtr getSOA() const {
+ isc_throw(isc::NotImplemented, "Not implemented");
+ }
+
+ static ZoneIteratorPtr makeIterator(RRClass rrclass) {
+ return (ZoneIteratorPtr(new MockIteratorRRSIGMixedCovered(rrclass)));
+ }
+};
+
+class MockIteratorEmptyRRset : public ZoneIterator {
+private:
+ MockIteratorEmptyRRset(RRClass rrclass) :
+ rrclass_(rrclass),
+ counter_(0)
+ {}
+
+ RRClass rrclass_;
+ int counter_;
+
+public:
+ virtual ConstRRsetPtr getNextRRset() {
+ RRsetPtr rrset;
+
+ switch (counter_) {
+ case 0:
+ rrset.reset(new RRset(Name("example.org"),
+ RRClass::IN(), RRType::SOA(), RRTTL(3600)));
+ rrset->addRdata(generic::SOA(Name("ns1.example.org"),
+ Name("bugs.x.w.example.org"),
+ 2010012601, 3600, 300, 3600000, 1200));
+ break;
+
+ case 1: {
+ rrset.reset(new RRset(Name("example.org"),
+ RRClass::IN(), RRType::A(), RRTTL(3600)));
+ break;
+ }
+
+ default:
+ rrset.reset();
+ }
+
+ if (counter_ < 2) {
+ counter_++;
+ }
+
+ return (rrset);
+ }
+
+ virtual ConstRRsetPtr getSOA() const {
+ isc_throw(isc::NotImplemented, "Not implemented");
+ }
+
+ static ZoneIteratorPtr makeIterator(RRClass rrclass) {
+ return (ZoneIteratorPtr(new MockIteratorEmptyRRset(rrclass)));
+ }
+};
+
class MemoryClientTest : public ::testing::Test {
protected:
MemoryClientTest() : zclass_(RRClass::IN()),
@@ -546,33 +656,15 @@ TEST_F(MemoryClientTest, loadRRSIGs) {
EXPECT_EQ(1, client_->getZoneCount());
}
-#if 0 // FIXME
-
TEST_F(MemoryClientTest, loadRRSIGsRdataMixedCoveredTypes) {
- client_->load(Name("example.org"),
- TEST_DATA_DIR "/example.org-rrsigs.zone");
-
- RRsetPtr rrset(new RRset(Name("example.org"),
- RRClass::IN(), RRType::A(), RRTTL(3600)));
- rrset->addRdata(in::A("192.0.2.1"));
- rrset->addRdata(in::A("192.0.2.2"));
-
- RRsetPtr rrsig(new RRset(Name("example.org"), zclass_,
- RRType::RRSIG(), RRTTL(300)));
- rrsig->addRdata(generic::RRSIG("A 5 3 3600 20000101000000 20000201000000 "
- "12345 example.org. FAKEFAKEFAKE"));
- rrsig->addRdata(generic::RRSIG("NS 5 3 3600 20000101000000 20000201000000 "
- "54321 example.org. FAKEFAKEFAKEFAKE"));
- rrset->addRRsig(rrsig);
-
- EXPECT_THROW(client_->add(Name("example.org"), rrset),
- ZoneDataUpdater::AddError);
-
+ // FIXME: This should throw, but it doesn't now.
+ EXPECT_THROW(
+ client_->load(Name("example.org"),
+ *MockIteratorRRSIGMixedCovered::makeIterator(zclass_)),
+ ZoneDataUpdater::AddError);
// Teardown checks for memory segment leaks
}
-#endif
-
TEST_F(MemoryClientTest, getZoneCount) {
EXPECT_EQ(0, client_->getZoneCount());
client_->load(Name("example.org"), TEST_DATA_DIR "/example.org-empty.zone");
@@ -662,79 +754,14 @@ TEST_F(MemoryClientTest, getIteratorGetSOAThrowsNotImplemented) {
EXPECT_THROW(iterator->getSOA(), isc::NotImplemented);
}
-#if 0 // FIXME
-
-TEST_F(MemoryClientTest, addRRsetToNonExistentZoneThrows) {
- // The zone "example.org" doesn't exist, so we can't add an RRset to
- // it.
- RRsetPtr rrset_a(new RRset(Name("example.org"), RRClass::IN(), RRType::A(),
- RRTTL(300)));
- rrset_a->addRdata(rdata::in::A("192.0.2.1"));
- EXPECT_THROW(client_->add(Name("example.org"), rrset_a), DataSourceError);
-}
-
-TEST_F(MemoryClientTest, addOutOfZoneThrows) {
- // Out of zone names should throw.
- client_->load(Name("example.org"),
- TEST_DATA_DIR "/example.org-empty.zone");
-
- RRsetPtr rrset_a(new RRset(Name("a.example.com"),
- RRClass::IN(), RRType::A(), RRTTL(300)));
- rrset_a->addRdata(rdata::in::A("192.0.2.1"));
-
- EXPECT_THROW(client_->add(Name("example.org"), rrset_a),
- OutOfZone);
- // Teardown checks for memory segment leaks
-}
-
-TEST_F(MemoryClientTest, addNullRRsetThrows) {
- client_->load(Name("example.org"),
- TEST_DATA_DIR "/example.org-rrsigs.zone");
-
- EXPECT_THROW(client_->add(Name("example.org"), ConstRRsetPtr()),
- ZoneDataUpdater::NullRRset);
-
- // Teardown checks for memory segment leaks
-}
-
TEST_F(MemoryClientTest, addEmptyRRsetThrows) {
- client_->load(Name("example.org"),
- TEST_DATA_DIR "/example.org-rrsigs.zone");
-
- RRsetPtr rrset_a(new RRset(Name("example.org"), RRClass::IN(), RRType::A(),
- RRTTL(300)));
- EXPECT_THROW(client_->add(Name("example.org"), rrset_a),
- ZoneDataUpdater::AddError);
-
+ EXPECT_THROW(
+ client_->load(Name("example.org"),
+ *MockIteratorEmptyRRset::makeIterator(zclass_)),
+ ZoneDataUpdater::AddError);
// Teardown checks for memory segment leaks
}
-TEST_F(MemoryClientTest, add) {
- client_->load(Name("example.org"), TEST_DATA_DIR "/example.org-empty.zone");
-
- // Add another RRset
- RRsetPtr rrset_a(new RRset(Name("example.org"), RRClass::IN(), RRType::A(),
- RRTTL(300)));
- rrset_a->addRdata(rdata::in::A("192.0.2.1"));
- client_->add(Name("example.org"), rrset_a);
-
- ZoneIteratorPtr iterator(client_->getIterator(Name("example.org")));
-
- // First we have the SOA
- ConstRRsetPtr rrset(iterator->getNextRRset());
- EXPECT_TRUE(rrset);
- EXPECT_EQ(RRType::A(), rrset->getType());
-
- rrset = iterator->getNextRRset();
- EXPECT_TRUE(rrset);
- EXPECT_EQ(RRType::SOA(), rrset->getType());
-
- // There's nothing else in this zone
- EXPECT_EQ(ConstRRsetPtr(), iterator->getNextRRset());
-}
-
-#endif
-
TEST_F(MemoryClientTest, findZoneData) {
client_->load(Name("example.org"),
TEST_DATA_DIR "/example.org-rrsigs.zone");
More information about the bind10-changes
mailing list