From: David VaĊĦek Date: Sat, 17 May 2025 10:34:15 +0000 (+0200) Subject: tests-extra: when ports are busy, really allow a retry with a different configuration X-Git-Tag: v3.4.7~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3fde58e9ca27b983cae92e26ed8024b2d4e38f69;p=thirdparty%2Fknot-dns.git tests-extra: when ports are busy, really allow a retry with a different configuration --- diff --git a/tests-extra/tools/dnstest/server.py b/tests-extra/tools/dnstest/server.py index 4f8512fbe5..93b290202f 100644 --- a/tests-extra/tools/dnstest/server.py +++ b/tests-extra/tools/dnstest/server.py @@ -369,7 +369,7 @@ class Server(object): if Context().test.stress and self.inquirer: self.inquirer.start(self) - def start(self, clean=False): + def start(self, clean=False, fatal=True): '''Start the server with all bindings successful''' for attempt in range(Server.START_MAX_ATTEMPTS): @@ -384,7 +384,10 @@ class Server(object): time.sleep(Server.START_WAIT_ATTEMPTS) check_log("STARTING %s AGAIN" % self.name) - raise Failed("Couldn't bind all addresses or ports") + if fatal: + raise Failed("Server %s couldn't bind all addresses or ports" % self.name) + else: + check_log("BUSY PORTS, START OF %s FAILED" % self.name) def ctl(self, cmd, wait=False, availability=True, read_result=False): if availability: @@ -1271,7 +1274,7 @@ class Bind(Server): return s.conf - def start(self, clean=False): + def start(self, clean=False, fatal=True): for zname in self.zones: z = self.zones[zname] if z.dnssec.enable != True: @@ -1303,7 +1306,7 @@ class Bind(Server): #n3iters = z.dnssec.nsec3_iters or 0 #outf.write("%s NSEC3PARAM 1 %d %d -\n" % (z.name, n3flag, n3iters)) # this does not work! - super().start(clean) + super().start(clean, fatal) for zname in self.zones: z = self.zones[zname] @@ -1935,7 +1938,7 @@ class Dummy(Server): def get_config(self): return '' - def start(self, clean=None): + def start(self, clean=None, fatal=None): return True def listening(self): diff --git a/tests-extra/tools/dnstest/test.py b/tests-extra/tools/dnstest/test.py index 2f103da74f..883948684b 100644 --- a/tests-extra/tools/dnstest/test.py +++ b/tests-extra/tools/dnstest/test.py @@ -277,7 +277,7 @@ class Test(object): if server.external: continue - server.start(clean=True) + server.start(clean=True, fatal=False) # When address/port is busy, Knot exits, BIND doesn't. if not server.running() or not server.listening():