From: Michal Nowak Date: Mon, 19 Feb 2024 17:06:53 +0000 (+0100) Subject: Add retry_with_timeout() utility function X-Git-Tag: v9.19.22~24^2~2 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=5694c52f52d8a2d1060e4cc73aea0f2e5b31e0fe;p=thirdparty%2Fbind9.git Add retry_with_timeout() utility function --- diff --git a/bin/tests/system/isctest/__init__.py b/bin/tests/system/isctest/__init__.py index 047ca7762ab..e0014adbba6 100644 --- a/bin/tests/system/isctest/__init__.py +++ b/bin/tests/system/isctest/__init__.py @@ -13,6 +13,7 @@ from . import check from . import instance from . import query from . import rndc +from . import run from . import log # isctest.mark module is intentionally NOT imported, because it relies on diff --git a/bin/tests/system/isctest/run.py b/bin/tests/system/isctest/run.py new file mode 100644 index 00000000000..2efb39d1371 --- /dev/null +++ b/bin/tests/system/isctest/run.py @@ -0,0 +1,23 @@ +# Copyright (C) Internet Systems Consortium, Inc. ("ISC") +# +# SPDX-License-Identifier: MPL-2.0 +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, you can obtain one at https://mozilla.org/MPL/2.0/. +# +# See the COPYRIGHT file distributed with this work for additional +# information regarding copyright ownership. + +import time + + +def retry_with_timeout(func, timeout, delay=1, msg=None): + start_time = time.time() + while time.time() < start_time + timeout: + if func(): + return + time.sleep(delay) + if msg is None: + msg = f"{func.__module__}.{func.__qualname__} timed out after {timeout} s" + assert False, msg