From c7cd387796b6edab8e2f3af4a0308a87002d2e7e Mon Sep 17 00:00:00 2001 From: Arnaud Morin Date: Wed, 7 Dec 2022 14:35:27 +0100 Subject: [PATCH] Amend documentation for fullstack tests When trying to execute the fullstack tests, I was a little bit lost in the documentation. This change is a proposal to refactor this a little bit so the only source of truth is the doc/source/contributor/testing/fullstack.rst file. Change-Id: Ibaf2ab9a227d71d18adf027d2ae509168c1e26da Signed-off-by: Arnaud Morin --- TESTING.rst | 54 +------------------- doc/source/contributor/testing/fullstack.rst | 34 +++++++++--- 2 files changed, 28 insertions(+), 60 deletions(-) diff --git a/TESTING.rst b/TESTING.rst index 9bc4bb3f9b1..b3dfa25263e 100644 --- a/TESTING.rst +++ b/TESTING.rst @@ -512,59 +512,7 @@ to deploy Neutron to the target host. Fullstack Tests ~~~~~~~~~~~~~~~ -To run all the fullstack tests, you may use: :: - - tox -e dsvm-fullstack - -Since fullstack tests often require the same resources and -dependencies as the functional tests, using the configuration script -tools/configure_for_func_testing.sh is advised (as described above). -Before running the script, you must first set the following environment -variable so things are setup correctly :: - - export VENV=dsvm-fullstack - -When running fullstack tests on a clean VM for the first time, it is -important to make sure all of Neutron's package dependencies have been met. -As mentioned in the functional test section above, this can be done by -running the configure script with the '-i' argument :: - - ./tools/configure_for_func_testing.sh ../devstack -i - -You can also run './stack.sh', and if successful, it will have also -verified the package dependencies have been met. -When running on a new VM it is suggested to set the following environment -variable as well, to make sure that all requirements (including database and -message bus) are installed and set :: - - export IS_GATE=False - -Fullstack-based Neutron daemons produce logs to a sub-folder in the -$OS_LOG_PATH directory (default: /opt/stack/logs, note: if running fullstack -tests on a newly created VM, make sure that $OS_LOG_PATH exists with the -correct permissions) called 'dsvm-fullstack-logs'. -For example, a test named "test_example" will produce logs in -$OS_LOG_PATH/dsvm-fullstack-logs/test_example/, as well as create -$OS_LOG_PATH/dsvm-fullstack-logs/test_example.txt, so that is a good place -to look if your test is failing. - -The fullstack test suite assumes 240.0.0.0/4 (Class E) range in the root -namespace of the test machine is available for its usage. - -Fullstack tests execute a custom dhclient-script. From kernel version 4.14 onward, -apparmor on certain distros could deny the execution of this script. To be sure, -check journalctl :: - - sudo journalctl | grep DENIED | grep fullstack-dhclient-script - -To execute these tests, the easiest workaround is to disable apparmor :: - - sudo systemctl stop apparmor - sudo systemctl disable apparmor - -A more granular solution could be to disable apparmor only for dhclient :: - - sudo ln -s /etc/apparmor.d/sbin.dhclient /etc/apparmor.d/disable/ +See :ref:`FullStack Testing` guide. API & Scenario Tests ~~~~~~~~~~~~~~~~~~~~ diff --git a/doc/source/contributor/testing/fullstack.rst b/doc/source/contributor/testing/fullstack.rst index 50ffd5aacc2..7de90d233ed 100644 --- a/doc/source/contributor/testing/fullstack.rst +++ b/doc/source/contributor/testing/fullstack.rst @@ -108,11 +108,15 @@ How to run fullstack tests locally? Fullstack tests can be run locally. That makes it much easier to understand exactly how it works, debug issues in the existing tests or write new ones. -To run fullstack tests locally, you should clone -`Devstack ` and `Neutron -` repositories. When repositories are -available locally, the first thing which needs to be done is preparation of the -environment. There is a simple script in Neutron to do that. +To run fullstack tests locally, you should clone the following repositories: + +* `Devstack ` +* `Neutron ` +* `Requirements ` + +When repositories are available locally, the first thing which needs to be +done is preparation of the environment. There is a simple script in Neutron +to do that: .. code-block:: console @@ -127,8 +131,24 @@ done you should see a message like: Phew, we're done! That means that all went well and you should be ready to run fullstack tests -locally. Of course there are many tests there and running all of them can -take a pretty long time so lets try to run just one: +locally. + +Fullstack tests execute a custom dhclient-script. From kernel version 4.14 onward, +apparmor on certain distros could deny the execution of this script. To be sure, +check journalctl :: + + sudo journalctl | grep DENIED | grep fullstack-dhclient-script + +To execute these tests, the easiest workaround is to disable apparmor :: + + sudo systemctl stop apparmor + sudo systemctl disable apparmor + +A more granular solution could be to disable apparmor only for dhclient :: + + sudo ln -s /etc/apparmor.d/sbin.dhclient /etc/apparmor.d/disable/ + +Now that your environment is ready for tests, you can try to run just one: .. code-block:: console