Add --max-slave-restart option
Also changed wording used from "failed node" to "crashed slave", to conform
with other messages ("slave sw0 crashed")
This commit is contained in:
@@ -458,6 +458,10 @@ class DSession:
|
||||
self._session = None
|
||||
self._failed_collection_errors = {}
|
||||
self._active_nodes = set()
|
||||
self._failed_nodes_count = 0
|
||||
self._max_slave_restart = self.config.getoption('max_slave_restart')
|
||||
if self._max_slave_restart is not None:
|
||||
self._max_slave_restart = int(self._max_slave_restart)
|
||||
try:
|
||||
self.terminal = config.pluginmanager.getplugin("terminalreporter")
|
||||
except KeyError:
|
||||
@@ -583,8 +587,20 @@ class DSession:
|
||||
else:
|
||||
if crashitem:
|
||||
self.handle_crashitem(crashitem, node)
|
||||
self.report_line("Replacing failed node %s" % node.gateway.id)
|
||||
self._clone_node(node)
|
||||
|
||||
self._failed_nodes_count += 1
|
||||
maximum_reached = (self._max_slave_restart is not None and
|
||||
self._failed_nodes_count > self._max_slave_restart)
|
||||
if maximum_reached:
|
||||
if self._max_slave_restart == 0:
|
||||
msg = 'Slave restarting disabled'
|
||||
else:
|
||||
msg = "Maximum crashed slaves reached: %d" % \
|
||||
self._max_slave_restart
|
||||
self.report_line(msg)
|
||||
else:
|
||||
self.report_line("Replacing crashed slave %s" % node.gateway.id)
|
||||
self._clone_node(node)
|
||||
self._active_nodes.remove(node)
|
||||
|
||||
def slave_collectionfinish(self, node, ids):
|
||||
|
||||
@@ -14,6 +14,9 @@ def pytest_addoption(parser):
|
||||
help="shortcut for '--dist=load --tx=NUM*popen', "
|
||||
"you can use 'auto' here for auto detection CPUs number on "
|
||||
"host system")
|
||||
group._addoption('--max-slave-restart', action="store", default=None,
|
||||
help="maximum number of slaves that can be restarted "
|
||||
"when crashed (set to zero to disable this feature)")
|
||||
group.addoption('--boxed',
|
||||
action="store_true", dest="boxed", default=False,
|
||||
help="box each test run in a separate process (unix)")
|
||||
|
||||
Reference in New Issue
Block a user