From 85b2f230ed28363a0b6ee3e27ed51264c5ed1b00 Mon Sep 17 00:00:00 2001 From: Daniel Salzman <daniel.salzman@nic.cz> Date: Thu, 20 Oct 2016 11:17:10 +0200 Subject: [PATCH] tests-extra: add new zone/load refresh test --- tests-extra/tests/zone/load/test.py | 43 +++++++++++++++++++++++++++++ tests-extra/tools/dnstest/server.py | 2 ++ 2 files changed, 45 insertions(+) create mode 100644 tests-extra/tests/zone/load/test.py diff --git a/tests-extra/tests/zone/load/test.py b/tests-extra/tests/zone/load/test.py new file mode 100644 index 0000000000..c40b7581d1 --- /dev/null +++ b/tests-extra/tests/zone/load/test.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python3 + +'''Test for slave zone refresh when loading.''' + +from dnstest.test import Test +from dnstest.utils import * + +t = Test() + +master = t.server("knot") +slave = t.server("knot") +slave.disable_notify = True + +zone_del = t.zone_rnd(1, dnssec=False) +zone_upd = t.zone_rnd(1, dnssec=False) +zones = zone_del + zone_upd +t.link(zones, master, slave) + +t.start() + +serial_del_init = master.zone_wait(zone_del) +serial_upd_init = master.zone_wait(zone_upd) +slave.zones_wait(zones) + +slave.stop() + +# Update a zonefile on the master. +master.update_zonefile(zone_upd, random=True) +master.reload() + +# Remove a zonefile on the slave. +slave.clean(zone=zone_del, timers=False) + +slave.start() + +# Check for immediate zone transfer if deleted. +slave.zone_wait(zone_del, serial=serial_del_init, equal=True, greater=False) + +# Check for untouched zone if retransfer already scheduled. +serial_upd = slave.zone_wait(zone_upd) +master.zone_wait(zone_upd, serial_upd, equal=False, greater=True) + +t.end() diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index 891806ed57..a84975c365 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -663,6 +663,8 @@ class Server(object): def clean(self, zone=True, timers=True): if zone: + zone = zone_arg_check(zone) + # Remove all zonefiles. if zone is True: for _z in sorted(self.zones): -- GitLab