diff --git a/bin/tests/system/synthrecord/ns1/named.conf.j2 b/bin/tests/system/synthrecord/ns1/named.conf.j2 index f2421febb1..0193196b1f 100644 --- a/bin/tests/system/synthrecord/ns1/named.conf.j2 +++ b/bin/tests/system/synthrecord/ns1/named.conf.j2 @@ -1,4 +1,5 @@ {% set inview = inview | default(False) %} +{% set toolongprefix = toolongprefix | default(False) %} options { query-source address 10.53.0.1; @@ -56,7 +57,11 @@ zone "0.53.10.in-addr.arpa." { type primary; file "0.53.10.in-addr.arpa.db"; plugin query "@TOP_BUILDDIR@/synthrecord" { +{% if toolongprefix %} + prefix "waytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefixwaytoolongprefix"; +{% else %} prefix "dynamic-"; +{% endif %} allow-synth { 10.53.0.0/24; }; diff --git a/bin/tests/system/synthrecord/tests_synthrecord.py b/bin/tests/system/synthrecord/tests_synthrecord.py index 3579b7a33d..dc66d9fe5f 100644 --- a/bin/tests/system/synthrecord/tests_synthrecord.py +++ b/bin/tests/system/synthrecord/tests_synthrecord.py @@ -508,3 +508,18 @@ def test_synthrecord_inview(ns1, templates): cmd = ns1.rndc("reconfig", raise_on_exception=False) assert cmd.rc != 0 watcher.wait_for_line("'synthrecord' must be configured as a zone plugin") + + +def test_synthrecord_toolongprefix(ns1, templates): + templates.render("ns1/named.conf", {"toolongprefix": True}) + with ns1.watch_log_from_here() as watcher: + ns1.rndc("reconfig") + watcher.wait_for_line("running") + ip = IPv4Address("10.53.0.8") + with ns1.watch_log_from_here() as watcher: + query = dns.message.make_query(ip.reverse_pointer, "PTR") + res = isctest.query.udp(query, SERVER) + assert res.rcode() == dns.rcode.NXDOMAIN + watcher.wait_for_line( + "synthrecord cannot create reverse answer name: ran out of space" + )