Merge pull request #356 from pristupa/maxprocessing-option
Add --maxprocesses option to use with --numprocesses=auto
This commit is contained in:
1
changelog/337.feature.rst
Normal file
1
changelog/337.feature.rst
Normal file
@@ -0,0 +1 @@
|
|||||||
|
New ``--maxprocesses`` command-line option that limits the maximum number of workers when using ``--numprocesses=auto``.
|
||||||
@@ -25,6 +25,10 @@ def test_dist_options(testdir):
|
|||||||
check_options(config)
|
check_options(config)
|
||||||
assert config.option.dist == "load"
|
assert config.option.dist == "load"
|
||||||
assert config.option.tx == ["popen"] * 2
|
assert config.option.tx == ["popen"] * 2
|
||||||
|
config = testdir.parseconfigure("--numprocesses", "3", "--maxprocesses", "2")
|
||||||
|
check_options(config)
|
||||||
|
assert config.option.dist == "load"
|
||||||
|
assert config.option.tx == ["popen"] * 2
|
||||||
config = testdir.parseconfigure("-d")
|
config = testdir.parseconfigure("-d")
|
||||||
check_options(config)
|
check_options(config)
|
||||||
assert config.option.dist == "load"
|
assert config.option.dist == "load"
|
||||||
|
|||||||
@@ -47,6 +47,14 @@ def pytest_addoption(parser):
|
|||||||
"you can use 'auto' here for auto detection CPUs number on "
|
"you can use 'auto' here for auto detection CPUs number on "
|
||||||
"host system",
|
"host system",
|
||||||
)
|
)
|
||||||
|
group.addoption(
|
||||||
|
"--maxprocesses",
|
||||||
|
dest="maxprocesses",
|
||||||
|
metavar="maxprocesses",
|
||||||
|
action="store",
|
||||||
|
type=int,
|
||||||
|
help="limit the maximum number of workers to process the tests when using --numprocesses=auto",
|
||||||
|
)
|
||||||
group.addoption(
|
group.addoption(
|
||||||
"--max-worker-restart",
|
"--max-worker-restart",
|
||||||
"--max-slave-restart",
|
"--max-slave-restart",
|
||||||
@@ -172,7 +180,10 @@ def pytest_cmdline_main(config):
|
|||||||
if config.option.numprocesses:
|
if config.option.numprocesses:
|
||||||
if config.option.dist == "no":
|
if config.option.dist == "no":
|
||||||
config.option.dist = "load"
|
config.option.dist = "load"
|
||||||
config.option.tx = ["popen"] * config.option.numprocesses
|
numprocesses = config.option.numprocesses
|
||||||
|
if config.option.maxprocesses:
|
||||||
|
numprocesses = min(numprocesses, config.option.maxprocesses)
|
||||||
|
config.option.tx = ["popen"] * numprocesses
|
||||||
if config.option.distload:
|
if config.option.distload:
|
||||||
config.option.dist = "load"
|
config.option.dist = "load"
|
||||||
val = config.getvalue
|
val = config.getvalue
|
||||||
|
|||||||
@@ -234,6 +234,7 @@ def remote_initconfig(option_dict, args):
|
|||||||
config.option.dist = "no"
|
config.option.dist = "no"
|
||||||
config.option.distload = False
|
config.option.distload = False
|
||||||
config.option.numprocesses = None
|
config.option.numprocesses = None
|
||||||
|
config.option.maxprocesses = None
|
||||||
config.args = args
|
config.args = args
|
||||||
return config
|
return config
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user