Add testing coverage .rst, missing test infrastructure to-dos
Change-Id: I1f3bc57ebc196a1c50b731c68cecb5aad3cda21d
This commit is contained in:
parent
504dfcc39f
commit
11da3bbe8b
@ -309,6 +309,10 @@ current unit tests coverage by running::
|
|||||||
|
|
||||||
$ ./run_tests.sh -c
|
$ ./run_tests.sh -c
|
||||||
|
|
||||||
|
Since the coverage command can only show unit test coverage, a coverage
|
||||||
|
document is maintained that shows test coverage per area of code in:
|
||||||
|
doc/source/devref/testing_coverage.rst.
|
||||||
|
|
||||||
Debugging
|
Debugging
|
||||||
---------
|
---------
|
||||||
|
|
||||||
|
@ -70,6 +70,7 @@ Testing
|
|||||||
:maxdepth: 3
|
:maxdepth: 3
|
||||||
|
|
||||||
fullstack_testing
|
fullstack_testing
|
||||||
|
testing_coverage
|
||||||
|
|
||||||
Module Reference
|
Module Reference
|
||||||
----------------
|
----------------
|
||||||
|
110
doc/source/devref/testing_coverage.rst
Normal file
110
doc/source/devref/testing_coverage.rst
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
..
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
not use this file except in compliance with the License. You may obtain
|
||||||
|
a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
License for the specific language governing permissions and limitations
|
||||||
|
under the License.
|
||||||
|
|
||||||
|
|
||||||
|
Convention for heading levels in Neutron devref:
|
||||||
|
======= Heading 0 (reserved for the title in a document)
|
||||||
|
------- Heading 1
|
||||||
|
~~~~~~~ Heading 2
|
||||||
|
+++++++ Heading 3
|
||||||
|
''''''' Heading 4
|
||||||
|
(Avoid deeper levels because they do not render well.)
|
||||||
|
|
||||||
|
|
||||||
|
Test Coverage
|
||||||
|
=============
|
||||||
|
|
||||||
|
The intention is to track merged features or areas of code that lack certain
|
||||||
|
types of tests. This document may be used both by developers that want to
|
||||||
|
contribute tests, and operators that are considering adopting a feature.
|
||||||
|
|
||||||
|
Coverage
|
||||||
|
--------
|
||||||
|
|
||||||
|
Note that while both API and scenario tests target a deployed OpenStack cloud,
|
||||||
|
API tests are under the Neutron tree and scenario tests are under the Tempest
|
||||||
|
tree.
|
||||||
|
|
||||||
|
It is the expectation that API changes involve API tests, agent features
|
||||||
|
or modifications involve functional tests, and Neutron-wide features involve
|
||||||
|
fullstack or scenario tests as appropriate.
|
||||||
|
|
||||||
|
The table references tests that explicitly target a feature, and not a job
|
||||||
|
that is configured to run against a specific backend (Thereby testing it
|
||||||
|
implicitly). So, for example, while the Linux bridge agent has a job that runs
|
||||||
|
the API and scenario tests with the Linux bridge agent configured, it does not
|
||||||
|
have functional tests that target the agent explicitly. The 'gate' column
|
||||||
|
is about running API/scenario tests with Neutron configured in a certain way,
|
||||||
|
such as what L2 agent to use or what type of routers to create.
|
||||||
|
|
||||||
|
* V - Merged
|
||||||
|
* Blank - Not applicable
|
||||||
|
* X - Absent or lacking
|
||||||
|
* Patch number - Currently in review
|
||||||
|
* A name - That person has committed to work on an item
|
||||||
|
|
||||||
|
+------------------------+------------+------------+------------+------------+------------+------------+
|
||||||
|
| Area | Unit | Functional | API | Fullstack | Scenario | Gate |
|
||||||
|
+========================+============+============+============+============+============+============+
|
||||||
|
| DVR | Partial* | L3-V OVS-X | V | amuller | X | V |
|
||||||
|
+------------------------+------------+------------+------------+------------+------------+------------+
|
||||||
|
| L3 HA | V | V | X | 196393 | X | X |
|
||||||
|
+------------------------+------------+------------+------------+------------+------------+------------+
|
||||||
|
| L2pop | V | X | | X | | |
|
||||||
|
+------------------------+------------+------------+------------+------------+------------+------------+
|
||||||
|
| DHCP HA | V | | | amuller | | |
|
||||||
|
+------------------------+------------+------------+------------+------------+------------+------------+
|
||||||
|
| OVS ARP responder | V | X* | | X* | | |
|
||||||
|
+------------------------+------------+------------+------------+------------+------------+------------+
|
||||||
|
| OVS agent | V | Partial | | V | | V |
|
||||||
|
+------------------------+------------+------------+------------+------------+------------+------------+
|
||||||
|
| Linux Bridge agent | V | X | | X | | Non-voting |
|
||||||
|
+------------------------+------------+------------+------------+------------+------------+------------+
|
||||||
|
| Metering | V | X | V | X | | |
|
||||||
|
+------------------------+------------+------------+------------+------------+------------+------------+
|
||||||
|
| DHCP agent | V | 136834 | | amuller | | V |
|
||||||
|
+------------------------+------------+------------+------------+------------+------------+------------+
|
||||||
|
| rpc_workers | | | | | | X |
|
||||||
|
+------------------------+------------+------------+------------+------------+------------+------------+
|
||||||
|
| Reference ipam driver | V | | | | | X (?) |
|
||||||
|
+------------------------+------------+------------+------------+------------+------------+------------+
|
||||||
|
| MTU advertisement | V | | | X | | |
|
||||||
|
+------------------------+------------+------------+------------+------------+------------+------------+
|
||||||
|
| VLAN transparency | V | | X | X | | |
|
||||||
|
+------------------------+------------+------------+------------+------------+------------+------------+
|
||||||
|
|
||||||
|
* DVR DB unit tests often assert that internal methods were called instead of
|
||||||
|
testing functionality. A lot of our unit tests are flawed in this way,
|
||||||
|
and DVR unit tests especially so. An attempt to remedy this was made
|
||||||
|
in patch 178880.
|
||||||
|
* OVS ARP responder cannot be tested at the gate because the gate uses Ubuntu
|
||||||
|
14.04 that only packages OVS 2.0. OVS added ARP manipulation support in
|
||||||
|
version 2.1.
|
||||||
|
|
||||||
|
Missing Infrastructure
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
The following section details missing test *types*. If you want to pick up
|
||||||
|
an action item, please contact amuller for more context and guidance.
|
||||||
|
|
||||||
|
* The Neutron team would like Rally to persist results over a window of time,
|
||||||
|
graph and visualize this data, so that reviewers could compare average runs
|
||||||
|
against a proposed patch.
|
||||||
|
* It's possible to test RPC methods via the unit tests infrastructure. This was
|
||||||
|
proposed in patch 162811. The goal is provide developers a light weight
|
||||||
|
way to rapidly run tests that target the RPC layer, so that a patch that
|
||||||
|
modifies an RPC method's signature could be verified quickly and locally.
|
||||||
|
* Neutron currently does not test an in-place upgrade (Upgrading the server
|
||||||
|
first, followed by agents one machine at a time). We make sure that the RPC
|
||||||
|
layer remains backwards compatible manually via the review process but have
|
||||||
|
no CI that verifies this.
|
Loading…
Reference in New Issue
Block a user