ad99fb0ddb
This may become handy when debugging gate failures like job or test case or ovsdb timeouts, to see the load of the machine, as well as to understand whether the machine was e.g. locked by its hypervisor during test run. Instead of using devstack as a library, we just enable the service in local.conf [[localrc]], and then call ./stack.sh. Now that we install some pypi packages into the system, and since functional targets were using those system packages, post_gate_hook.sh broke failing to locate subunit-2to1 script in the tox env directory. To fix that, we disable sitepackages= for all functional tox targets. This was enabled back in the times when we attempted to install neutron for the functional job using devstack [1], and we no longer do it, so it should be ok to stick to all packages from the tox venv. [1] Icc38cacd69bc5843ccfcc60237a7102df6d8597f Change-Id: I73857f63f512e26d595c61a20ec5bf22d2fb0da7
143 lines
4.7 KiB
INI
143 lines
4.7 KiB
INI
[tox]
|
|
envlist = docs,py35,py27,pep8
|
|
minversion = 2.3.1
|
|
skipsdist = True
|
|
|
|
[testenv]
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
PYTHONWARNINGS=default::DeprecationWarning
|
|
passenv = TRACE_FAILONLY GENERATE_HASHES http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY
|
|
usedevelop = True
|
|
install_command =
|
|
pip install -U -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}
|
|
deps = -r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
whitelist_externals = sh
|
|
commands =
|
|
{toxinidir}/tools/ostestr_compat_shim.sh {posargs}
|
|
# there is also secret magic in ostestr which lets you run in a fail only
|
|
# mode. To do this define the TRACE_FAILONLY environmental variable.
|
|
|
|
[testenv:common]
|
|
# Fake job to define environment variables shared between dsvm/non-dsvm jobs
|
|
setenv = OS_TEST_TIMEOUT=180
|
|
commands = false
|
|
|
|
[testenv:dsvm]
|
|
# Fake job to define environment variables shared between dsvm jobs
|
|
setenv = OS_SUDO_TESTING=1
|
|
OS_ROOTWRAP_CMD=sudo {envdir}/bin/neutron-rootwrap {envdir}/etc/neutron/rootwrap.conf
|
|
OS_ROOTWRAP_DAEMON_CMD=sudo {envdir}/bin/neutron-rootwrap-daemon {envdir}/etc/neutron/rootwrap.conf
|
|
OS_FAIL_ON_MISSING_DEPS=1
|
|
OS_LOG_PATH={env:OS_LOG_PATH:/opt/stack/logs}
|
|
commands = false
|
|
|
|
[testenv:functional]
|
|
basepython = python2.7
|
|
setenv = {[testenv]setenv}
|
|
{[testenv:common]setenv}
|
|
OS_TEST_PATH=./neutron/tests/functional
|
|
OS_LOG_PATH={env:OS_LOG_PATH:/opt/stack/logs}
|
|
deps =
|
|
{[testenv]deps}
|
|
-r{toxinidir}/neutron/tests/functional/requirements.txt
|
|
|
|
[testenv:functional-py35]
|
|
basepython = python3.5
|
|
setenv = {[testenv:functional]setenv}
|
|
deps =
|
|
{[testenv:functional]deps}
|
|
|
|
[testenv:dsvm-functional]
|
|
basepython = python2.7
|
|
setenv = {[testenv:functional]setenv}
|
|
{[testenv:dsvm]setenv}
|
|
deps =
|
|
{[testenv:functional]deps}
|
|
commands =
|
|
{toxinidir}/tools/deploy_rootwrap.sh {toxinidir} {envdir}/etc {envdir}/bin
|
|
{toxinidir}/tools/ostestr_compat_shim.sh {posargs}
|
|
|
|
[testenv:dsvm-functional-py35]
|
|
basepython = python3.5
|
|
setenv = {[testenv:dsvm-functional]setenv}
|
|
deps =
|
|
{[testenv:dsvm-functional]deps}
|
|
commands =
|
|
{toxinidir}/tools/deploy_rootwrap.sh {toxinidir} {envdir}/etc {envdir}/bin
|
|
{toxinidir}/tools/ostestr_compat_shim.sh {posargs}
|
|
|
|
[testenv:dsvm-fullstack]
|
|
setenv = {[testenv]setenv}
|
|
{[testenv:common]setenv}
|
|
{[testenv:dsvm]setenv}
|
|
# workaround for DB teardown lock contention (bug/1541742)
|
|
OS_TEST_TIMEOUT=600
|
|
OS_TEST_PATH=./neutron/tests/fullstack
|
|
deps =
|
|
{[testenv:functional]deps}
|
|
|
|
[testenv:releasenotes]
|
|
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
|
|
|
[testenv:pep8]
|
|
basepython = python2.7
|
|
deps =
|
|
{[testenv]deps}
|
|
commands=
|
|
# If it is easier to add a check via a shell script, consider adding it in this file
|
|
sh ./tools/misc-sanity-checks.sh
|
|
{toxinidir}/tools/check_unit_test_structure.sh
|
|
# Checks for coding and style guidelines
|
|
flake8
|
|
sh ./tools/coding-checks.sh --pylint '{posargs}'
|
|
neutron-db-manage --config-file neutron/tests/etc/neutron.conf check_migration
|
|
python ./tools/list_moved_globals.py
|
|
{[testenv:genconfig]commands}
|
|
whitelist_externals =
|
|
sh
|
|
bash
|
|
|
|
[testenv:cover]
|
|
basepython = python2.7
|
|
commands =
|
|
python setup.py testr --coverage --testr-args='{posargs}'
|
|
coverage report
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|
|
|
|
[testenv:docs]
|
|
commands = sphinx-build -W -b html doc/source doc/build/html
|
|
|
|
[flake8]
|
|
# E125 continuation line does not distinguish itself from next logical line
|
|
# E126 continuation line over-indented for hanging indent
|
|
# E128 continuation line under-indented for visual indent
|
|
# E129 visually indented line with same indent as next logical line
|
|
# E265 block comment should start with '# '
|
|
# H404 multi line docstring should start with a summary
|
|
# H405 multi line docstring summary not separated with an empty line
|
|
ignore = E125,E126,E128,E129,E265,H404,H405
|
|
# H904: Delay string interpolations at logging calls
|
|
enable-extensions=H904
|
|
show-source = true
|
|
exclude = ./.*,build,dist
|
|
|
|
[hacking]
|
|
import_exceptions = neutron._i18n
|
|
local-check-factory = neutron.hacking.checks.factory
|
|
|
|
[testenv:genconfig]
|
|
commands = {toxinidir}/tools/generate_config_file_samples.sh
|
|
|
|
# This environment can be used to quickly validate that all needed system
|
|
# packages required to successfully execute test targets are installed
|
|
[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.
|
|
deps = bindep
|
|
commands = bindep test
|