knot-dns/tests-extra/tests/dnssec/ixfr_diff/test.py

52 lines
1.2 KiB
Python

#!/usr/bin/env python3
'''Test IXFR-from-diff with DNSSEC'''
from dnstest.test import Test
t = Test(stress=False)
master = t.server("knot")
slave = t.server("knot")
if not master.valgrind:
zones = t.zone_rnd(12)
else:
zones = t.zone_rnd(4, records=100)
slave.tcp_remote_io_timeout = 20000
master.ctl_params_append = ["-t", "30"]
t.link(zones, master, slave, ixfr=True)
master.semantic_check = False
master.zonefile_sync = "-1"
for zone in zones:
master.dnssec(zone).enable = True
t.start()
ser1 = master.zones_wait(zones, serials_zfile=True, greater=True, equal=False)
slave.zones_wait(zones, ser1, greater=False, equal=True)
for zone in zones:
slave.zone_backup(zone, flush=True)
master.flush(wait=True)
for zone in zones:
master.update_zonefile(zone, random=True)
master.ctl("zone-reload %s" % zone.name)
ser2 = master.zones_wait(zones, serials_zfile=True, greater=True, equal=False)
slave.zones_wait(zones, ser2, greater=False, equal=True)
master.stop()
t.sleep(3)
master.start()
master.zones_wait(zones, ser2, greater=False, equal=True)
t.xfr_diff(master, slave, zones) # AXFR diff
t.xfr_diff(master, slave, zones, ser1) # IXFR diff
t.end()