[svn] commit: r4045 - in /branches/trac451/src: bin/auth/ bin/auth/tests/ lib/testutils/testdata/
BIND 10 source code commits
bind10-changes at lists.isc.org
Tue Dec 28 16:43:40 UTC 2010
Author: vorner
Date: Tue Dec 28 16:43:39 2010
New Revision: 4045
Log:
Load zones from config knob
Added:
branches/trac451/src/lib/testutils/testdata/example.com.zone
branches/trac451/src/lib/testutils/testdata/example.net.zone
branches/trac451/src/lib/testutils/testdata/example.org.zone
branches/trac451/src/lib/testutils/testdata/example.zone
Modified:
branches/trac451/src/bin/auth/config.cc
branches/trac451/src/bin/auth/tests/config_unittest.cc
branches/trac451/src/lib/testutils/testdata/Makefile.am
Modified: branches/trac451/src/bin/auth/config.cc
==============================================================================
--- branches/trac451/src/bin/auth/config.cc (original)
+++ branches/trac451/src/bin/auth/config.cc Tue Dec 28 16:43:39 2010
@@ -151,16 +151,15 @@
isc_throw(AuthConfigError, "Missing zone file for zone: "
<< origin->str());
}
- const result::Result result = memory_datasrc_->addZone(
- ZonePtr(new MemoryZone(rrclass_, Name(origin->stringValue()))));
+ shared_ptr<MemoryZone> new_zone(new MemoryZone(rrclass_,
+ Name(origin->stringValue())));
+ const result::Result result = memory_datasrc_->addZone(new_zone);
if (result == result::EXIST) {
isc_throw(AuthConfigError, "zone "<< origin->str()
<< " already exists");
}
- // TODO
- // then load the zone from 'file', which is currently not implemented.
- //
+ new_zone->load(file->stringValue());
}
}
Modified: branches/trac451/src/bin/auth/tests/config_unittest.cc
==============================================================================
--- branches/trac451/src/bin/auth/tests/config_unittest.cc (original)
+++ branches/trac451/src/bin/auth/tests/config_unittest.cc Tue Dec 28 16:43:39 2010
@@ -143,33 +143,42 @@
}
TEST_F(MemoryDatasrcConfigTest, addOneZone) {
- parser->build(Element::fromJSON(
- "[{\"type\": \"memory\","
- " \"zones\": [{\"origin\": \"example.com\","
- " \"file\": \"example.zone\"}]}]"));
- parser->commit();
+ EXPECT_NO_THROW(parser->build(Element::fromJSON(
+ "[{\"type\": \"memory\","
+ " \"zones\": [{\"origin\": \"example.com\","
+ " \"file\": \"" TEST_DATA_DIR
+ "/example.zone\"}]}]")));
+ EXPECT_NO_THROW(parser->commit());
EXPECT_EQ(1, server.getMemoryDataSrc(rrclass)->getZoneCount());
+ // Check it actually loaded something
+ EXPECT_EQ(Zone::SUCCESS, server.getMemoryDataSrc(rrclass)->findZone(
+ Name("ns.example.com.")).zone->find(Name("ns.example.com."),
+ RRType::A()).code);
}
TEST_F(MemoryDatasrcConfigTest, addMultiZones) {
- parser->build(Element::fromJSON(
- "[{\"type\": \"memory\","
- " \"zones\": [{\"origin\": \"example.com\","
- " \"file\": \"example.zone\"},"
+ EXPECT_NO_THROW(parser->build(Element::fromJSON(
+ "[{\"type\": \"memory\","
+ " \"zones\": [{\"origin\": \"example.com\","
+ " \"file\": \"" TEST_DATA_DIR
+ "/example.zone\"},"
" {\"origin\": \"example.org\","
- " \"file\": \"example.org.zone\"},"
+ " \"file\": \"" TEST_DATA_DIR
+ "/example.org.zone\"},"
" {\"origin\": \"example.net\","
- " \"file\": \"example.net.zone\"}]}]"));
- parser->commit();
+ " \"file\": \"" TEST_DATA_DIR
+ "/example.net.zone\"}]}]")));
+ EXPECT_NO_THROW(parser->commit());
EXPECT_EQ(3, server.getMemoryDataSrc(rrclass)->getZoneCount());
}
TEST_F(MemoryDatasrcConfigTest, replace) {
- parser->build(Element::fromJSON(
- "[{\"type\": \"memory\","
- " \"zones\": [{\"origin\": \"example.com\","
- " \"file\": \"example.zone\"}]}]"));
- parser->commit();
+ EXPECT_NO_THROW(parser->build(Element::fromJSON(
+ "[{\"type\": \"memory\","
+ " \"zones\": [{\"origin\": \"example.com\","
+ " \"file\": \"" TEST_DATA_DIR
+ "/example.zone\"}]}]")));
+ EXPECT_NO_THROW(parser->commit());
EXPECT_EQ(1, server.getMemoryDataSrc(rrclass)->getZoneCount());
EXPECT_EQ(isc::datasrc::result::SUCCESS,
server.getMemoryDataSrc(rrclass)->findZone(
@@ -179,13 +188,15 @@
// should replace the old one.
delete parser;
parser = createAuthConfigParser(server, "datasources");
- parser->build(Element::fromJSON(
+ EXPECT_NO_THROW(parser->build(Element::fromJSON(
"[{\"type\": \"memory\","
" \"zones\": [{\"origin\": \"example.org\","
- " \"file\": \"example.org.zone\"},"
+ " \"file\": \"" TEST_DATA_DIR
+ "/example.org.zone\"},"
" {\"origin\": \"example.net\","
- " \"file\": \"example.net.zone\"}]}]"));
- parser->commit();
+ " \"file\": \"" TEST_DATA_DIR
+ "/example.net.zone\"}]}]")));
+ EXPECT_NO_THROW(parser->commit());
EXPECT_EQ(2, server.getMemoryDataSrc(rrclass)->getZoneCount());
EXPECT_EQ(isc::datasrc::result::NOTFOUND,
server.getMemoryDataSrc(rrclass)->findZone(
@@ -193,17 +204,18 @@
}
TEST_F(MemoryDatasrcConfigTest, remove) {
- parser->build(Element::fromJSON(
- "[{\"type\": \"memory\","
- " \"zones\": [{\"origin\": \"example.com\","
- " \"file\": \"example.zone\"}]}]"));
- parser->commit();
+ EXPECT_NO_THROW(parser->build(Element::fromJSON(
+ "[{\"type\": \"memory\","
+ " \"zones\": [{\"origin\": \"example.com\","
+ " \"file\": \"" TEST_DATA_DIR
+ "/example.zone\"}]}]")));
+ EXPECT_NO_THROW(parser->commit());
EXPECT_EQ(1, server.getMemoryDataSrc(rrclass)->getZoneCount());
delete parser;
parser = createAuthConfigParser(server, "datasources");
- parser->build(Element::fromJSON("[]"));
- parser->commit();
+ EXPECT_NO_THROW(parser->build(Element::fromJSON("[]")));
+ EXPECT_NO_THROW(parser->commit());
EXPECT_EQ(AuthSrv::MemoryDataSrcPtr(), server.getMemoryDataSrc(rrclass));
}
@@ -212,9 +224,11 @@
Element::fromJSON(
"[{\"type\": \"memory\","
" \"zones\": [{\"origin\": \"example.com\","
- " \"file\": \"example.zone\"},"
+ " \"file\": \"" TEST_DATA_DIR
+ "/example.zone\"},"
" {\"origin\": \"example.com\","
- " \"file\": \"example.com.zone\"}]}]")),
+ " \"file\": \"" TEST_DATA_DIR
+ "/example.com.zone\"}]}]")),
AuthConfigError);
}
Modified: branches/trac451/src/lib/testutils/testdata/Makefile.am
==============================================================================
--- branches/trac451/src/lib/testutils/testdata/Makefile.am (original)
+++ branches/trac451/src/lib/testutils/testdata/Makefile.am Tue Dec 28 16:43:39 2010
@@ -18,6 +18,7 @@
EXTRA_DIST += shortresponse_fromWire
EXTRA_DIST += simplequery_fromWire.spec
EXTRA_DIST += simpleresponse_fromWire.spec
+EXTRA_DIST += example.com.zone example.net.zone example.org.zone example.zone
EXTRA_DIST += example.com
EXTRA_DIST += example.sqlite3
More information about the bind10-changes
mailing list