BIND 10 trac2108_3, updated. f60ea8d945a1c503670418c7e3f6cc57e5b82ee1 [2108] Test iterator with separate_rrs=true
BIND 10 source code commits
bind10-changes at lists.isc.org
Mon Sep 10 05:18:37 UTC 2012
The branch, trac2108_3 has been updated
via f60ea8d945a1c503670418c7e3f6cc57e5b82ee1 (commit)
via c531154142d7466163731429af8050ede78bc423 (commit)
via 72f8b8a0db78bab56f8efb0f344fc8961f9adadc (commit)
from a376d4a632d9510ba8f4175b4221b245b812d65b (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 f60ea8d945a1c503670418c7e3f6cc57e5b82ee1
Author: Mukund Sivaraman <muks at isc.org>
Date: Mon Sep 10 10:48:20 2012 +0530
[2108] Test iterator with separate_rrs=true
commit c531154142d7466163731429af8050ede78bc423
Author: Mukund Sivaraman <muks at isc.org>
Date: Mon Sep 10 10:48:04 2012 +0530
[2108] Fix comment
commit 72f8b8a0db78bab56f8efb0f344fc8961f9adadc
Author: Mukund Sivaraman <muks at isc.org>
Date: Mon Sep 10 10:47:54 2012 +0530
[2108] getTTL() is unimplemented in TreeNodeRRset
For now, let's use RRTTL(0) and revisit it.
-----------------------------------------------------------------------
Summary of changes:
src/lib/datasrc/memory/memory_client.cc | 2 +-
.../datasrc/memory/tests/memory_client_unittest.cc | 45 +++++++++++++++++++-
src/lib/datasrc/memory/tests/testdata/Makefile.am | 1 +
.../tests/testdata/example.org-multiple.zone | 4 ++
4 files changed, 50 insertions(+), 2 deletions(-)
create mode 100644 src/lib/datasrc/memory/tests/testdata/example.org-multiple.zone
-----------------------------------------------------------------------
diff --git a/src/lib/datasrc/memory/memory_client.cc b/src/lib/datasrc/memory/memory_client.cc
index e21fd48..12e68df 100644
--- a/src/lib/datasrc/memory/memory_client.cc
+++ b/src/lib/datasrc/memory/memory_client.cc
@@ -839,7 +839,7 @@ public:
RRsetPtr result(new RRset(rrset_->getName(),
rrset_->getClass(),
rrset_->getType(),
- rrset_->getTTL()));
+ RRTTL(0)));
result->addRdata(rdata_iterator_->getCurrent());
rdata_iterator_->next();
if (rdata_iterator_->isLast()) {
diff --git a/src/lib/datasrc/memory/tests/memory_client_unittest.cc b/src/lib/datasrc/memory/tests/memory_client_unittest.cc
index 771f036..ee747a3 100644
--- a/src/lib/datasrc/memory/tests/memory_client_unittest.cc
+++ b/src/lib/datasrc/memory/tests/memory_client_unittest.cc
@@ -468,13 +468,56 @@ TEST_F(MemoryClientTest, getIterator) {
EXPECT_TRUE(rrset_soa);
EXPECT_EQ(RRType::SOA(), rrset_soa->getType());
- // There's nothing else in this zone
+ // There's nothing else in this iterator
EXPECT_EQ(ConstRRsetPtr(), iterator->getNextRRset());
// Iterating past the end should result in an exception
EXPECT_THROW(iterator->getNextRRset(), isc::Unexpected);
}
+TEST_F(MemoryClientTest, getIteratorSeparateRRs) {
+ client_->load(Name("example.org"),
+ TEST_DATA_DIR "/example.org-multiple.zone");
+
+ // separate_rrs = false
+ ZoneIteratorPtr iterator(client_->getIterator(Name("example.org")));
+
+ // First we have the SOA
+ ConstRRsetPtr rrset(iterator->getNextRRset());
+ EXPECT_TRUE(rrset);
+ EXPECT_EQ(RRType::SOA(), rrset->getType());
+
+ // Only one RRType::A() RRset
+ rrset = iterator->getNextRRset();
+ EXPECT_TRUE(rrset);
+ EXPECT_EQ(RRType::A(), rrset->getType());
+
+ // There's nothing else in this zone
+ EXPECT_EQ(ConstRRsetPtr(), iterator->getNextRRset());
+
+
+ // separate_rrs = true
+ ZoneIteratorPtr iterator2(client_->getIterator(Name("example.org"), true));
+
+ // First we have the SOA
+ rrset = iterator2->getNextRRset();
+ EXPECT_TRUE(rrset);
+ EXPECT_EQ(RRType::SOA(), rrset->getType());
+
+ // First RRType::A() RRset
+ rrset = iterator2->getNextRRset();
+ EXPECT_TRUE(rrset);
+ EXPECT_EQ(RRType::A(), rrset->getType());
+
+ // Second RRType::A() RRset
+ rrset = iterator2->getNextRRset();
+ EXPECT_TRUE(rrset);
+ EXPECT_EQ(RRType::A(), rrset->getType());
+
+ // There's nothing else in this iterator
+ EXPECT_EQ(ConstRRsetPtr(), iterator2->getNextRRset());
+}
+
TEST_F(MemoryClientTest, getIteratorGetSOAThrowsNotImplemented) {
client_->load(Name("example.org"), TEST_DATA_DIR "/example.org-empty.zone");
ZoneIteratorPtr iterator(client_->getIterator(Name("example.org")));
diff --git a/src/lib/datasrc/memory/tests/testdata/Makefile.am b/src/lib/datasrc/memory/tests/testdata/Makefile.am
index 8e0c2c8..17fb97a 100644
--- a/src/lib/datasrc/memory/tests/testdata/Makefile.am
+++ b/src/lib/datasrc/memory/tests/testdata/Makefile.am
@@ -3,6 +3,7 @@ CLEANFILES = *.copied
EXTRA_DIST = empty.zone
EXTRA_DIST += example.org.zone
EXTRA_DIST += example.org-empty.zone
+EXTRA_DIST += example.org-multiple.zone
EXTRA_DIST += example.org-broken1.zone
EXTRA_DIST += example.org-broken2.zone
EXTRA_DIST += example.org-rrsig-follows-nothing.zone
diff --git a/src/lib/datasrc/memory/tests/testdata/example.org-multiple.zone b/src/lib/datasrc/memory/tests/testdata/example.org-multiple.zone
new file mode 100644
index 0000000..f473ae6
--- /dev/null
+++ b/src/lib/datasrc/memory/tests/testdata/example.org-multiple.zone
@@ -0,0 +1,4 @@
+;; Multiple RDATA for testing separate RRs iterator
+example.org. 3600 IN SOA ns1.example.org. bugs.x.w.example.org. 78 3600 300 3600000 3600
+a.example.org. 3600 IN A 192.168.0.1
+a.example.org. 3600 IN A 192.168.0.2
More information about the bind10-changes
mailing list