From: Matthijs Mekking Date: Thu, 20 Nov 2025 13:10:45 +0000 (+0100) Subject: Wait for log zone_needdump is more reliable X-Git-Tag: v9.21.16~9^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c17ac426082b2eca802dd1b2e1bb9b4b4b291199;p=thirdparty%2Fbind9.git Wait for log zone_needdump is more reliable In some cases we wait for the log message "sending notifies" before proceeding with the test case. Notifies are rate limited. They are not sent on every change to the zone. The "zone_needdump" messages happen on every change. --- diff --git a/bin/tests/system/dnssec/tests_policy.py b/bin/tests/system/dnssec/tests_policy.py index 672dc8a4a45..e813bea4481 100644 --- a/bin/tests/system/dnssec/tests_policy.py +++ b/bin/tests/system/dnssec/tests_policy.py @@ -63,7 +63,9 @@ def test_signatures_validity(ns3, templates): templates.render("ns3/named.conf", {"long_sigs": True}) with ns3.watch_log_from_here() as watcher: ns3.reconfigure(log=False) - watcher.wait_for_line("siginterval.example/IN (signed): sending notifies") + watcher.wait_for_line( + "zone_needdump: zone siginterval.example/IN (signed): enter" + ) res = isctest.query.tcp(msg, "10.53.0.3") after = next(filter(is_rrsig_soa, res.answer)) diff --git a/bin/tests/system/nsec3/tests_nsec3_reconfig.py b/bin/tests/system/nsec3/tests_nsec3_reconfig.py index 47cd77ecf2f..3b791eba118 100644 --- a/bin/tests/system/nsec3/tests_nsec3_reconfig.py +++ b/bin/tests/system/nsec3/tests_nsec3_reconfig.py @@ -326,9 +326,13 @@ def test_nsec3_ent(ns3, templates): # remove a name, bump the SOA, and reload templates.render(f"{ns3.identifier}/nsec3-ent.kasp.db", {"serial": 2}) + messages = [ + f"zone {zone}/IN (unsigned): loaded serial 2", + f"zone_needdump: zone {zone}/IN (signed): enter", + ] with ns3.watch_log_from_here() as watcher: ns3.rndc(f"reload {zone}") - watcher.wait_for_line(f"zone {zone}/IN (signed): sending notifies") + watcher.wait_for_sequence(messages) # try the query again query = isctest.query.create(f"c.{fqdn}", dns.rdatatype.A) @@ -345,9 +349,13 @@ def test_nsec3_ent(ns3, templates): # add a name with an ENT, bump the SOA, and reload ensuring the time stamp changes templates.render(f"{ns3.identifier}/nsec3-ent.kasp.db", {"serial": 3}) + messages = [ + f"zone {zone}/IN (unsigned): loaded serial 3", + f"zone_needdump: zone {zone}/IN (signed): enter", + ] with ns3.watch_log_from_here() as watcher: ns3.rndc(f"reload {zone}") - watcher.wait_for_line(f"zone {zone}/IN (signed): sending notifies") + watcher.wait_for_sequence(messages) # try the query again query = isctest.query.create(f"x.y.z.{fqdn}", dns.rdatatype.A) diff --git a/bin/tests/system/rollover-zsk-prepub/tests_rollover_zsk_prepublication.py b/bin/tests/system/rollover-zsk-prepub/tests_rollover_zsk_prepublication.py index 30a5104c8b1..73f249b2586 100644 --- a/bin/tests/system/rollover-zsk-prepub/tests_rollover_zsk_prepublication.py +++ b/bin/tests/system/rollover-zsk-prepub/tests_rollover_zsk_prepublication.py @@ -225,7 +225,7 @@ def test_zsk_prepub_step3(tld, alg, size, ns3): # Force full resign and check all signatures have been replaced. with ns3.watch_log_from_here() as watcher: ns3.rndc(f"sign {zone}", log=False) - watcher.wait_for_line(f"zone {zone}/IN (signed): sending notifies") + watcher.wait_for_line(f"zone_needdump: zone {zone}/IN (signed): enter") step["smooth"] = False step["nextev"] = Iret(CONFIG, smooth=False)