]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[2436] Test there's validation in ZoneLoader
authorMichal 'vorner' Vaner <michal.vaner@nic.cz>
Fri, 4 Jan 2013 15:22:11 +0000 (16:22 +0100)
committerMichal 'vorner' Vaner <michal.vaner@nic.cz>
Tue, 8 Jan 2013 13:14:46 +0000 (14:14 +0100)
src/lib/datasrc/tests/Makefile.am
src/lib/datasrc/tests/testdata/novalidate.zone [new file with mode: 0644]
src/lib/datasrc/tests/zone_loader_unittest.cc

index 61858bd2f24f39232823db1ed9c83af6234acfc7..2508585d7204b3c1f84850549ba193a4cb89e929 100644 (file)
@@ -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 (file)
index 0000000..f5a1ca6
--- /dev/null
@@ -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
index b19a843fb9dd76b03397be7632d03bc05c1fad5a..9f4cf2b937e49443f544b11274b410ee5650a988 100644 (file)
@@ -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_);
+}
+
 }