[svn] commit: r945 - in /branches/each-ds/src/lib/dns/cpp: rrsetlist.h rrsetlist_unittest.cc
BIND 10 source code commits
bind10-changes at lists.isc.org
Wed Feb 24 03:25:57 UTC 2010
Author: each
Date: Wed Feb 24 03:25:57 2010
New Revision: 945
Log:
- added some more rrsetlist unit tests
Modified:
branches/each-ds/src/lib/dns/cpp/rrsetlist.h
branches/each-ds/src/lib/dns/cpp/rrsetlist_unittest.cc
Modified: branches/each-ds/src/lib/dns/cpp/rrsetlist.h
==============================================================================
--- branches/each-ds/src/lib/dns/cpp/rrsetlist.h (original)
+++ branches/each-ds/src/lib/dns/cpp/rrsetlist.h Wed Feb 24 03:25:57 2010
@@ -43,7 +43,7 @@
const RRClass& rrclass = RRClass::IN());
const RRsetPtr findRRset(const RRsetPtr);
- const RRsetPtr operator[](RRType t) { return this->findRRset(t); }
+ const RRsetPtr operator[](RRType t) { return (this->findRRset(t)); }
typedef std::vector<RRsetPtr>::const_iterator const_iterator;
const_iterator begin() const { return (rrsets_.begin()); }
Modified: branches/each-ds/src/lib/dns/cpp/rrsetlist_unittest.cc
==============================================================================
--- branches/each-ds/src/lib/dns/cpp/rrsetlist_unittest.cc (original)
+++ branches/each-ds/src/lib/dns/cpp/rrsetlist_unittest.cc Wed Feb 24 03:25:57 2010
@@ -15,10 +15,15 @@
// $Id: rrtype_unittest.cc 476 2010-01-19 00:29:28Z jinmei $
#include <vector>
+#include <boost/foreach.hpp>
+#include "rdata.h"
+#include "rdataclass.h"
+#include "rrclass.h"
+#include "rrtype.h"
#include "rrsetlist.h"
#include "rrset.h"
-#include "rdata.h"
+#include "rrttl.h"
#include <gtest/gtest.h>
@@ -33,12 +38,161 @@
class RRsetListTest : public ::testing::Test {
protected:
RRsetListTest() {}
+ static const in::A rdata_in_a;
+ static const in::AAAA rdata_in_aaaa;
+ static const generic::NS rdata_ns;
+ static const generic::SOA rdata_soa;
+ static const generic::CNAME rdata_cname;
};
+
+const in::A RRsetListTest::rdata_in_a("192.0.2.1");
+const in::AAAA RRsetListTest::rdata_in_aaaa("2001:db8::1234");
+const generic::NS RRsetListTest::rdata_ns("ns.example.com");
+const generic::SOA RRsetListTest::rdata_soa(Name("ns.example.com"),
+ Name("root.example.com"),
+ 2010012601, 3600, 300,
+ 3600000, 1200);
+const generic::CNAME RRsetListTest::rdata_cname("target.example.com");
TEST_F(RRsetListTest, emptyOnInitialCreate) {
RRsetList list;
EXPECT_EQ(list.size(), 0);
}
+TEST_F(RRsetListTest, addRRsets) {
+ RRsetList list;
+ RRsetPtr a(new RRset(Name("example.com"), RRClass::IN(),
+ RRType::A(), RRTTL(3600)));
+ a->addRdata(rdata_in_a);
+ list.addRRset(a);
+
+ RRsetPtr aaaa(new RRset(Name("example.com"), RRClass::IN(),
+ RRType::AAAA(), RRTTL(3600)));
+ aaaa->addRdata(rdata_in_aaaa);
+ list.addRRset(aaaa);
+
+ RRsetPtr ns(new RRset(Name("example.com"), RRClass::IN(),
+ RRType::NS(), RRTTL(3600)));
+ ns->addRdata(rdata_ns);
+ list.addRRset(ns);
+
+ RRsetPtr soa(new RRset(Name("example.com"), RRClass::IN(),
+ RRType::SOA(), RRTTL(3600)));
+ soa->addRdata(rdata_soa);
+ list.addRRset(soa);
+
+ RRsetPtr cname(new RRset(Name("example.com"), RRClass::IN(),
+ RRType::CNAME(), RRTTL(3600)));
+ cname->addRdata(rdata_cname);
+ list.addRRset(cname);
+ EXPECT_EQ(list.size(), 5);
}
+TEST_F(RRsetListTest, randomAccess) {
+ RRsetList list;
+ RRsetPtr a(new RRset(Name("example.com"), RRClass::IN(),
+ RRType::A(), RRTTL(3600)));
+ a->addRdata(rdata_in_a);
+ list.addRRset(a);
+
+ RRsetPtr aaaa(new RRset(Name("example.com"), RRClass::IN(),
+ RRType::AAAA(), RRTTL(3600)));
+ aaaa->addRdata(rdata_in_aaaa);
+ list.addRRset(aaaa);
+
+ RRsetPtr ns(new RRset(Name("example.com"), RRClass::IN(),
+ RRType::NS(), RRTTL(3600)));
+ ns->addRdata(rdata_ns);
+ list.addRRset(ns);
+
+ RRsetPtr soa(new RRset(Name("example.com"), RRClass::IN(),
+ RRType::SOA(), RRTTL(3600)));
+ soa->addRdata(rdata_soa);
+ list.addRRset(soa);
+
+ RRsetPtr cname(new RRset(Name("example.com"), RRClass::IN(),
+ RRType::CNAME(), RRTTL(3600)));
+ cname->addRdata(rdata_cname);
+ list.addRRset(cname);
+
+ RRsetPtr p;
+
+ p = list[RRType::CNAME()];
+ EXPECT_TRUE(p->getType() == RRType::CNAME());
+
+ p = list[RRType::AAAA()];
+ EXPECT_TRUE(p->getType() == RRType::AAAA());
+
+ p = list[RRType::NS()];
+ EXPECT_TRUE(p->getType() == RRType::NS());
+
+ p = list[RRType::A()];
+ EXPECT_TRUE(p->getType() == RRType::A());
+
+ p = list[RRType::SOA()];
+ EXPECT_TRUE(p->getType() == RRType::SOA());
+}
+
+TEST_F(RRsetListTest, checkData) {
+ RRsetList list;
+ RRsetPtr a(new RRset(Name("example.com"), RRClass::IN(),
+ RRType::A(), RRTTL(3600)));
+ a->addRdata(rdata_in_a);
+ list.addRRset(a);
+
+ RdataIteratorPtr it = list[RRType::A()]->getRdataIterator();
+ it->first();
+ EXPECT_FALSE(it->isLast());
+ EXPECT_EQ("192.0.2.1", it->getCurrent().toText());
+}
+
+TEST_F(RRsetListTest, iterate) {
+ RRsetList list;
+ RRsetPtr a(new RRset(Name("example.com"), RRClass::IN(),
+ RRType::A(), RRTTL(3600)));
+ a->addRdata(rdata_in_a);
+ list.addRRset(a);
+
+ RRsetPtr aaaa(new RRset(Name("example.com"), RRClass::IN(),
+ RRType::AAAA(), RRTTL(3600)));
+ aaaa->addRdata(rdata_in_aaaa);
+ list.addRRset(aaaa);
+
+ RRsetPtr ns(new RRset(Name("example.com"), RRClass::IN(),
+ RRType::NS(), RRTTL(3600)));
+ ns->addRdata(rdata_ns);
+ list.addRRset(ns);
+
+ RRsetPtr soa(new RRset(Name("example.com"), RRClass::IN(),
+ RRType::SOA(), RRTTL(3600)));
+ soa->addRdata(rdata_soa);
+ list.addRRset(soa);
+
+ RRsetPtr cname(new RRset(Name("example.com"), RRClass::IN(),
+ RRType::CNAME(), RRTTL(3600)));
+ cname->addRdata(rdata_cname);
+ list.addRRset(cname);
+
+ bool has_a, has_aaaa, has_ns, has_soa, has_cname;
+ BOOST_FOREACH(RRsetPtr rrset, list) {
+ if (rrset->getType() == RRType::A()) {
+ has_a = true;
+ }
+ if (rrset->getType() == RRType::AAAA()) {
+ has_aaaa = true;
+ }
+ if (rrset->getType() == RRType::NS()) {
+ has_ns = true;
+ }
+ if (rrset->getType() == RRType::SOA()) {
+ has_soa = true;
+ }
+ if (rrset->getType() == RRType::CNAME()) {
+ has_cname = true;
+ }
+ }
+ EXPECT_TRUE(has_a && has_aaaa && has_ns && has_soa && has_cname);
+}
+
+}
+
More information about the bind10-changes
mailing list