os-vif/tox.ini
Sean Mooney 2df01e8845 address test stablity under load
vif_plug_ovs.tests.functional.ovsdb.test_ovsdb_lib.TestOVSDBLib.test_create_ovs_vif_port_with_default_qos(native)
can fail under load as the ovs-db requires the ovsvswitchd
to acknowlage the requested configution
before the db tansaction is complete.

currently os-vif works around this using a wait_until_true retry loop
with a hardcoded 2 second timeout. This change bumps the default timeout
to 10 seconds and make it configurable via a new env var.

OS_VIF_CHECK_PARAMETER_TIMEOUT

this should stablise the test under load such as in ci and allow the timeout
to be turned via ci jobs if requried.

note 10 seconds is already over kill so if we see instablity after this
change we likely shoudl reduce concurrency instead.

Related-Bug: #2087982
Change-Id: Icd0b69a7f3a121fbe4fe2b754c1fc1d993d2a741
2024-11-20 21:21:44 +00:00

89 lines
2.3 KiB
INI

[tox]
minversion = 3.18.0
envlist = py3,pep8,docs,releasenotes,cover
[testenv]
usedevelop = True
setenv =
passenv =
OS_VIF_CHECK_PARAMETER_TIMEOUT
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = stestr run --exclude-regex ".tests.functional" {posargs}
[testenv:functional]
setenv =
{[testenv]setenv}
commands =
stestr run --exclude-regex ".tests.unit" {posargs}
[testenv:docs]
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/doc/requirements.txt
commands = sphinx-build -W -b html doc/source doc/build/html
[testenv:pdf-docs]
deps = {[testenv:docs]deps}
allowlist_externals =
rm
make
commands =
rm -rf doc/build/pdf
sphinx-build -W -b latex doc/source doc/build/pdf
make -C doc/build/pdf
[testenv:releasenotes]
deps = {[testenv:docs]deps}
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:venv]
commands = {posargs}
deps =
{[testenv]deps}
-r{toxinidir}/doc/requirements.txt
[testenv:cover]
setenv =
{[testenv]setenv}
PYTHON=coverage run --source os_vif,vif_plug_linux_bridge,vif_plug_ovs,vif_plug_noop --parallel-mode
commands =
stestr run --exclude-regex ".tests.functional" {posargs}
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
coverage report
[testenv:pep8]
deps =
hacking>=3.0.1,<3.1.0
commands = flake8
[flake8]
# E123, E125 skipped as they are invalid PEP-8.
# Following checks are ignored on purpose.
#
# H404, H405 skipped on purpose per jay pipes discussion.
# W504 line break after binary operator
show-source = True
ignore = E123,E125,E126,E127,E128,H404,H405,W504
enable-extensions = H106,H203
builtins = _
exclude = .venv,.git,.tox,dist,*lib/python*,*egg,build
max-complexity = 30
[hacking]
import_exceptions = os_vif.i18n
[testenv:bindep]
# Do not install any requirements. We want this to be fast and work even if
# system dependencies are missing, since it's used to tell you what system
# dependencies are missing! This also means that bindep must be installed
# separately, outside of the requirements files.
skipsdist=True
usedevelop=False
deps = bindep
commands = bindep test