From: Libor Peltan Date: Fri, 21 Dec 2018 17:40:20 +0000 (+0100) Subject: tests: added test on zone-in-journal merging (dnssec usecase) X-Git-Tag: v2.8.0~135 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e0fbf312d76ff3cd8236fbba96f8788a82a40e39;p=thirdparty%2Fknot-dns.git tests: added test on zone-in-journal merging (dnssec usecase) --- diff --git a/tests-extra/tests/ixfr/zone-in-journal/test.py b/tests-extra/tests/ixfr/zone-in-journal/test.py new file mode 100644 index 0000000000..75bebb5728 --- /dev/null +++ b/tests-extra/tests/ixfr/zone-in-journal/test.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python3 + +'''Test of zone-in-journal: slave should merge changesets into zone-in-journal''' + +from dnstest.test import Test + +t = Test() + +master = t.server("knot") +slave = t.server("knot") + +zone = t.zone_rnd(1, records=100, dnssec=False) + +t.link(zone, master, slave) + +for z in master.zones: + slave.zones[z].journal_content = "none" + +for z in slave.zones: + slave.zones[z].journal_content = "all" + +slave.max_journal_usage = 150 * 1024 + +master.zonefile_sync = "0" +slave.zonefile_sync = "-1" + +master.dnssec(zone).enable = "true" + +t.start() + +master.zone_wait(zone) +slave.zone_wait(zone) + +for i in range(1, 8): + master.ctl("zone-sign") + t.sleep(2) # slave should merge the journal twice into the "bootstrap" changeset + +t.sleep(2) + +slave.stop() +slave.start() # now the slave starts the zone from zone-in-journal and does not XFR + +slave.zone_wait(zone) + +slave.ctl("zone-refresh") # this is just to ensure that he gives up + +t.xfr_diff(master, slave, zone) + +t.end() diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index 4801b72677..c4bff691da 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -139,6 +139,7 @@ class Server(object): self.disable_notify = None self.zonefile_sync = "1d" self.journal_db_size = 20 * 1024 * 1024 + self.max_journal_usage = 5 * 1024 * 1024 self.timer_db_size = 1 * 1024 * 1024 self.kasp_db_size = 10 * 1024 * 1024 self.zone_size_limit = None @@ -1213,6 +1214,7 @@ class Knot(Server): s.item_str("kasp-db", self.keydir) s.item_str("max-kasp-db-size", self.kasp_db_size) s.item_str("max-journal-db-size", self.journal_db_size) + s.item_str("max-journal-usage", self.max_journal_usage) s.item_str("max-timer-db-size", self.timer_db_size) s.item_str("semantic-checks", "on") if self.disable_any: