diff --git a/bin/tests/system/isctest/__init__.py b/bin/tests/system/isctest/__init__.py index 047ca7762a..e0014adbba 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 0000000000..2efb39d137 --- /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