From: Michal 'vorner' Vaner Date: Fri, 4 Jan 2013 15:22:11 +0000 (+0100) Subject: [2436] Test there's validation in ZoneLoader X-Git-Tag: bind10-1.0.0-rc-release~99^2~17 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b25df37f16da91f53b2e068fdd5aeb78e349311b;p=thirdparty%2Fkea.git [2436] Test there's validation in ZoneLoader --- diff --git a/src/lib/datasrc/tests/Makefile.am b/src/lib/datasrc/tests/Makefile.am index 61858bd2f2..2508585d72 100644 --- a/src/lib/datasrc/tests/Makefile.am +++ b/src/lib/datasrc/tests/Makefile.am @@ -118,3 +118,4 @@ EXTRA_DIST += testdata/new_minor_schema.sqlite3 EXTRA_DIST += testdata/newschema.sqlite3 EXTRA_DIST += testdata/oldschema.sqlite3 EXTRA_DIST += testdata/static.zone +EXTRA_DIST += testdata/novalidate.zone diff --git a/src/lib/datasrc/tests/testdata/novalidate.zone b/src/lib/datasrc/tests/testdata/novalidate.zone new file mode 100644 index 0000000000..f5a1ca6a65 --- /dev/null +++ b/src/lib/datasrc/tests/testdata/novalidate.zone @@ -0,0 +1,3 @@ +. 86400 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2010030802 1800 900 604800 86400 +; Missing the NS here, will generate an error in validation +www. 3600 IN A 192.0.2.1 diff --git a/src/lib/datasrc/tests/zone_loader_unittest.cc b/src/lib/datasrc/tests/zone_loader_unittest.cc index b19a843fb9..9f4cf2b937 100644 --- a/src/lib/datasrc/tests/zone_loader_unittest.cc +++ b/src/lib/datasrc/tests/zone_loader_unittest.cc @@ -392,4 +392,23 @@ TEST_F(ZoneLoaderTest, loadSyntaxError) { EXPECT_FALSE(destination_client_.commit_called_); } +// Test there's validation of the data in the zone loader. +TEST_F(ZoneLoaderTest, loadValidation) { + ZoneLoader loader(destination_client_, Name::ROOT_NAME(), + TEST_DATA_DIR "/novalidate.zone"); + EXPECT_THROW(loader.loadIncremental(10), ZoneContentError); + // The messages go to the log. We don't have an easy way to examine them. + EXPECT_FALSE(destination_client_.commit_called_); +} + +// The same test, but for copying from other data source +TEST_F(ZoneLoaderTest, copyValidation) { + prepareSource(Name::ROOT_NAME(), "novalidate.zone"); + ZoneLoader loader(destination_client_, Name::ROOT_NAME(), source_client_); + + EXPECT_THROW(loader.loadIncremental(10), ZoneContentError); + // The messages go to the log. We don't have an easy way to examine them. + EXPECT_FALSE(destination_client_.commit_called_); +} + }