]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Test also with subdomains of existing names
authorPetr Špaček <pspacek@isc.org>
Wed, 7 May 2025 13:45:24 +0000 (15:45 +0200)
committerPetr Špaček <pspacek@isc.org>
Tue, 29 Jul 2025 08:00:36 +0000 (10:00 +0200)
Composite strategy makes sure we always test with a subdomain of an
existing name.

bin/tests/system/dnssec/tests_nsec3.py

index 3c4efafcfb07dd795c5035ed5e45617291d03b73..1a7dbe71eed5023dfa024eedb2a980e0f84512a8 100755 (executable)
@@ -158,6 +158,27 @@ def check_nsec3_covers(name: dns.name.Name, response: dns.message.Message) -> No
 # @given(name=just(dns.name.from_text(f"\000.\001.{SUFFIX}")))
 # @given(name=just(dns.name.from_text(f"a.wild.{SUFFIX}")))
 def test_dnssec_nsec3_nxdomain(server, name: dns.name.Name, named_port: int) -> None:
+    noqname_test(server, name, named_port)
+
+
+@strategies.composite
+def generate_subdomain_of_existing_name(draw):
+    existing = draw(strategies.sampled_from(sorted(KNOWN_NAMES)))
+    subdomain = draw(isctest.hypothesis.strategies.dns_names(suffix=existing))
+    return subdomain
+
+
+@pytest.mark.parametrize(
+    "server", [pytest.param(AUTH, id="ns3"), pytest.param(RESOLVER, id="ns4")]
+)
+@given(name=generate_subdomain_of_existing_name())
+def test_dnssec_nsec3_subdomain_nxdomain(
+    server, name: dns.name.Name, named_port: int
+) -> None:
+    noqname_test(server, name, named_port)
+
+
+def noqname_test(server, name: dns.name.Name, named_port: int) -> None:
     # Name must not exist.
     assume(name not in KNOWN_NAMES)