summaryrefslogtreecommitdiff
path: root/buildscripts/resmokelib/testing/hooks/bghook.py
diff options
context:
space:
mode:
Diffstat (limited to 'buildscripts/resmokelib/testing/hooks/bghook.py')
-rw-r--r--buildscripts/resmokelib/testing/hooks/bghook.py34
1 files changed, 6 insertions, 28 deletions
diff --git a/buildscripts/resmokelib/testing/hooks/bghook.py b/buildscripts/resmokelib/testing/hooks/bghook.py
index 1b3fed3b104..b61f37b4e2d 100644
--- a/buildscripts/resmokelib/testing/hooks/bghook.py
+++ b/buildscripts/resmokelib/testing/hooks/bghook.py
@@ -13,13 +13,11 @@ class BGJob(threading.Thread):
BGJob will call 'run_action' without any delay and expects the 'run_action' function to add some form of delay.
"""
- def __init__(self, hook, loop_delay_ms=None):
+ def __init__(self, hook):
"""Initialize the background job."""
threading.Thread.__init__(self, name=f"BGJob-{hook.__class__.__name__}")
- self._loop_delay_ms = loop_delay_ms
self.daemon = True
self._hook = hook
- self._interrupt_event = threading.Event()
self.__is_alive = True
self.err = None
@@ -31,14 +29,6 @@ class BGJob(threading.Thread):
try:
self._hook.run_action()
- if self._loop_delay_ms is not None:
- # The configured loop delay asked us to wait before running the action again. Do
- # that wait, but listen to see if we finish running the test or are killed in
- # the meantime.
- interrupted = self._interrupt_event.wait(self._loop_delay_ms / 1000.0)
- if interrupted:
- self._hook.logger.info("interrupted")
- break
except Exception as err: # pylint: disable=broad-except
self._hook.logger.error("Background thread caught exception: %s.", err)
self.err = err
@@ -47,7 +37,6 @@ class BGJob(threading.Thread):
def kill(self):
"""Kill the background job."""
self.__is_alive = False
- self._interrupt_event.set()
class BGHook(interface.Hook):
@@ -57,13 +46,8 @@ class BGHook(interface.Hook):
# By default, we continuously run the background hook for the duration of the suite.
DEFAULT_TESTS_PER_CYCLE = math.inf
- def __init__(self, hook_logger, fixture, desc, tests_per_cycle=None, loop_delay_ms=None):
- """
- Initialize the background hook.
-
- 'tests_per_cycle' or 'loop_delay_ms' can be used to configure how often the background job
- is restarted, and how often run_action() is called, respectively.
- """
+ def __init__(self, hook_logger, fixture, desc, tests_per_cycle=None):
+ """Initialize the background hook."""
interface.Hook.__init__(self, hook_logger, fixture, desc)
self.logger = hook_logger
@@ -73,21 +57,15 @@ class BGHook(interface.Hook):
self._test_num = 0
# The number of tests we execute before restarting the background hook.
self._tests_per_cycle = self.DEFAULT_TESTS_PER_CYCLE if tests_per_cycle is None else tests_per_cycle
- self._loop_delay_ms = loop_delay_ms
def run_action(self):
- """
- Perform an action. This function will be called continuously in the BgJob.
-
- If a sleep_delay_ms was given, that many milliseconds of sleep will happen between each
- invocation.
- """
+ """Perform an action. This function will be called continuously in the BgJob."""
raise NotImplementedError
def before_suite(self, test_report):
"""Start the background thread."""
self.logger.info("Starting the background thread.")
- self._background_job = BGJob(self, self._loop_delay_ms)
+ self._background_job = BGJob(self)
self._background_job.start()
def after_suite(self, test_report, teardown_flag=None):
@@ -108,7 +86,7 @@ class BGHook(interface.Hook):
return
self.logger.info("Restarting the background thread.")
- self._background_job = BGJob(self, self._loop_delay_ms)
+ self._background_job = BGJob(self)
self._background_job.start()
def after_test(self, test, test_report):