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