From: Petr Špaček Date: Wed, 7 May 2025 13:45:24 +0000 (+0200) Subject: Test also with subdomains of existing names X-Git-Tag: v9.21.11~22^2~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=84ad35e7affd1c17e29721a3d84e283642cf6af2;p=thirdparty%2Fbind9.git Test also with subdomains of existing names Composite strategy makes sure we always test with a subdomain of an existing name. --- diff --git a/bin/tests/system/dnssec/tests_nsec3.py b/bin/tests/system/dnssec/tests_nsec3.py index 3c4efafcfb0..1a7dbe71eed 100755 --- a/bin/tests/system/dnssec/tests_nsec3.py +++ b/bin/tests/system/dnssec/tests_nsec3.py @@ -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)