[svn] commit: r3927 - in /branches/trac441/src/lib/datasrc: memory_datasrc.h tests/memory_datasrc_unittest.cc
BIND 10 source code commits
bind10-changes at lists.isc.org
Tue Dec 21 09:33:59 UTC 2010
Author: vorner
Date: Tue Dec 21 09:33:54 2010
New Revision: 3927
Log:
Test for MemoryZone::load
Modified:
branches/trac441/src/lib/datasrc/memory_datasrc.h
branches/trac441/src/lib/datasrc/tests/memory_datasrc_unittest.cc
Modified: branches/trac441/src/lib/datasrc/memory_datasrc.h
==============================================================================
--- branches/trac441/src/lib/datasrc/memory_datasrc.h (original)
+++ branches/trac441/src/lib/datasrc/memory_datasrc.h Tue Dec 21 09:33:54 2010
@@ -118,6 +118,8 @@
{ }
};
+ void load(const std::string& filename);
+
private:
/// \name Hidden private data
//@{
Modified: branches/trac441/src/lib/datasrc/tests/memory_datasrc_unittest.cc
==============================================================================
--- branches/trac441/src/lib/datasrc/tests/memory_datasrc_unittest.cc (original)
+++ branches/trac441/src/lib/datasrc/tests/memory_datasrc_unittest.cc Tue Dec 21 09:33:54 2010
@@ -17,6 +17,7 @@
#include <dns/name.h>
#include <dns/rrclass.h>
#include <dns/rrttl.h>
+#include <dns/masterload.h>
#include <datasrc/memory_datasrc.h>
@@ -167,9 +168,12 @@
* \param name The name to ask for.
* \param rrtype The RRType to ask of.
* \param result The expected code of the result.
+ * \param check_answer Should a check against equality of the answer be
+ * done?
* \param answer The expected rrset, if any should be returned.
*/
void findTest(const Name& name, const RRType& rrtype, Zone::Result result,
+ bool check_answer = true,
const ConstRRsetPtr& answer = ConstRRsetPtr())
{
// The whole block is inside, because we need to check the result and
@@ -178,7 +182,9 @@
Zone::FindResult find_result(zone_.find(name, rrtype));
// Check it returns correct answers
EXPECT_EQ(result, find_result.code);
- EXPECT_EQ(answer, find_result.rrset);
+ if (check_answer) {
+ EXPECT_EQ(answer, find_result.rrset);
+ }
});
}
};
@@ -236,8 +242,8 @@
EXPECT_NO_THROW(EXPECT_EQ(SUCCESS, zone_.add(rr_delegation_)));
// These two should be successful
- findTest(origin_, RRType::NS(), Zone::SUCCESS, rr_ns_);
- findTest(ns_name_, RRType::A(), Zone::SUCCESS, rr_ns_a_);
+ findTest(origin_, RRType::NS(), Zone::SUCCESS, true, rr_ns_);
+ findTest(ns_name_, RRType::A(), Zone::SUCCESS, true, rr_ns_a_);
// These domain exist but don't have the provided RRType
findTest(origin_, RRType::AAAA(), Zone::NXRRSET);
@@ -252,4 +258,22 @@
rr_delegation_);
}
-}
+TEST_F(MemoryZoneTest, load) {
+ // Loading with different origin should fail
+ EXPECT_THROW(zone_.load(TEST_DATA_DIR "/root.zone"), MasterLoadError);
+ // Create correct zone
+ MemoryZone rootzone(class_, Name("."));
+ // Try putting something inside
+ EXPECT_NO_THROW(EXPECT_EQ(result::SUCCESS, zone_.add(rr_ns_aaaa_)));
+ // Load the zone. It should overwrite/remove the above RRset
+ EXPECT_NO_THROW(rootzone.load(TEST_DATA_DIR "/root.zone"));
+
+ // Now see there are some rrsets (we don't look inside, though)
+ findTest(Name("."), RRType::SOA(), Zone::SUCCESS, false);
+ findTest(Name("."), RRType::NS(), Zone::SUCCESS, false);
+ findTest(Name("a.root-servers.net."), RRType::A(), Zone::SUCCESS, false);
+ // But this should no longer be here
+ findTest(ns_name_, RRType::AAAA(), Zone::NXDOMAIN, false);
+}
+
+}
More information about the bind10-changes
mailing list