summaryrefslogtreecommitdiffstats
path: root/tests-extra
diff options
context:
space:
mode:
authorDaniel Salzman <daniel.salzman@nic.cz>2024-07-18 09:16:08 +0200
committerDaniel Salzman <daniel.salzman@nic.cz>2024-07-19 16:53:55 +0200
commit14a7ba8ab3a444ba8ac4436bc75a71a31b836248 (patch)
tree9242d032b0f0893a7d589e04e488251b9cf47012 /tests-extra
parentMakefile: fix typo (diff)
downloadknot-14a7ba8ab3a444ba8ac4436bc75a71a31b836248.tar.xz
knot-14a7ba8ab3a444ba8ac4436bc75a71a31b836248.zip
conf: add 'zone.default-ttl` configuration option
Diffstat (limited to 'tests-extra')
-rw-r--r--tests-extra/tests/zone/default_ttl/data/test.zone5
-rw-r--r--tests-extra/tests/zone/default_ttl/test.py76
2 files changed, 81 insertions, 0 deletions
diff --git a/tests-extra/tests/zone/default_ttl/data/test.zone b/tests-extra/tests/zone/default_ttl/data/test.zone
new file mode 100644
index 000000000..9fd01b852
--- /dev/null
+++ b/tests-extra/tests/zone/default_ttl/data/test.zone
@@ -0,0 +1,5 @@
+$ORIGIN test.
+
+@ 7200 SOA ns admin 1 10 10 120 10
+ 7200 NS ns
+ns A 10.0.0.1
diff --git a/tests-extra/tests/zone/default_ttl/test.py b/tests-extra/tests/zone/default_ttl/test.py
new file mode 100644
index 000000000..95c6fa42f
--- /dev/null
+++ b/tests-extra/tests/zone/default_ttl/test.py
@@ -0,0 +1,76 @@
+#!/usr/bin/env python3
+
+"""Basic checks of Additional section content."""
+
+import os
+
+from dnstest.libknot import libknot
+from dnstest.test import Test
+
+t = Test()
+
+knot = t.server("knot")
+zone = t.zone("test", storage=".")
+t.link(zone, knot)
+
+ctl = libknot.control.KnotCtl()
+
+t.start()
+serial = knot.zone_wait(zone)
+
+ctl.connect(os.path.join(knot.dir, "knot.sock"))
+
+# Initial test with default default-ttl = 3600
+
+resp = knot.dig("test", "NS")
+resp.check(rcode="NOERROR", rdata="ns.test.", ttl=7200)
+
+resp = knot.dig("ns.test", "A")
+resp.check(rcode="NOERROR", rdata="10.0.0.1", ttl=3600)
+
+ctl.send_block(cmd="zone-begin")
+resp = ctl.receive_block()
+ctl.send_block(cmd="zone-set", zone=zone[0].name, owner="text1", rtype="TXT", data="test")
+resp = ctl.receive_block()
+ctl.send_block(cmd="zone-commit")
+resp = ctl.receive_block()
+serial = knot.zone_wait(zone, serial)
+
+resp = knot.dig("text1.test", "TXT")
+resp.check(rcode="NOERROR", rdata="test", ttl=3600)
+
+# Set default-ttl to 120
+
+ctl.send_block(cmd="conf-begin")
+resp = ctl.receive_block()
+ctl.send_block(cmd="conf-set", section="zone", item="default-ttl",
+ identifier=zone[0].name, data="120")
+resp = ctl.receive_block()
+knot.zones[zone[0].name].zfile.update_soa(serial=serial+1)
+ctl.send_block(cmd="conf-commit")
+resp = ctl.receive_block()
+serial = knot.zone_wait(zone, serial)
+
+# Check the modified default-ttl affects the loaded zone
+
+resp = knot.dig("test", "NS")
+resp.check(rcode="NOERROR", rdata="ns.test.", ttl=7200)
+
+resp = knot.dig("ns.test", "A")
+resp.check(rcode="NOERROR", rdata="10.0.0.1", ttl=120)
+
+ctl.send_block(cmd="zone-begin")
+resp = ctl.receive_block()
+ctl.send_block(cmd="zone-set", zone=zone[0].name, owner="text2", rtype="TXT", data="test")
+resp = ctl.receive_block()
+ctl.send_block(cmd="zone-commit")
+resp = ctl.receive_block()
+serial = knot.zone_wait(zone, serial)
+
+resp = knot.dig("text2.test", "TXT")
+resp.check(rcode="NOERROR", rdata="test", ttl=120)
+
+ctl.send(libknot.control.KnotCtlType.END)
+ctl.close()
+
+t.stop()