Set lock_path correctly.
[openstack-build/neutron-build.git] / doc / source / devref / testing_coverage.rst
1 ..
2       Licensed under the Apache License, Version 2.0 (the "License"); you may
3       not use this file except in compliance with the License. You may obtain
4       a copy of the License at
5
6           http://www.apache.org/licenses/LICENSE-2.0
7
8       Unless required by applicable law or agreed to in writing, software
9       distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
10       WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
11       License for the specific language governing permissions and limitations
12       under the License.
13
14
15       Convention for heading levels in Neutron devref:
16       =======  Heading 0 (reserved for the title in a document)
17       -------  Heading 1
18       ~~~~~~~  Heading 2
19       +++++++  Heading 3
20       '''''''  Heading 4
21       (Avoid deeper levels because they do not render well.)
22
23
24 Test Coverage
25 =============
26
27 The intention is to track merged features or areas of code that lack certain
28 types of tests. This document may be used both by developers that want to
29 contribute tests, and operators that are considering adopting a feature.
30
31 Coverage
32 --------
33
34 Note that while both API and scenario tests target a deployed OpenStack cloud,
35 API tests are under the Neutron tree and scenario tests are under the Tempest
36 tree.
37
38 It is the expectation that API changes involve API tests, agent features
39 or modifications involve functional tests, and Neutron-wide features involve
40 fullstack or scenario tests as appropriate.
41
42 The table references tests that explicitly target a feature, and not a job
43 that is configured to run against a specific backend (Thereby testing it
44 implicitly). So, for example, while the Linux bridge agent has a job that runs
45 the API and scenario tests with the Linux bridge agent configured, it does not
46 have functional tests that target the agent explicitly. The 'gate' column
47 is about running API/scenario tests with Neutron configured in a certain way,
48 such as what L2 agent to use or what type of routers to create.
49
50 * V            - Merged
51 * Blank        - Not applicable
52 * X            - Absent or lacking
53 * Patch number - Currently in review
54 * A name       - That person has committed to work on an item
55
56 +------------------------+------------+------------+------------+------------+------------+------------+
57 | Area                   | Unit       | Functional | API        | Fullstack  | Scenario   | Gate       |
58 +========================+============+============+============+============+============+============+
59 | DVR                    | Partial*   | L3-V OVS-X | V          | amuller    | X          | V          |
60 +------------------------+------------+------------+------------+------------+------------+------------+
61 | L3 HA                  | V          | V          | X          | 196393     | X          | X          |
62 +------------------------+------------+------------+------------+------------+------------+------------+
63 | L2pop                  | V          | X          |            | X          |            |            |
64 +------------------------+------------+------------+------------+------------+------------+------------+
65 | DHCP HA                | V          |            |            | amuller    |            |            |
66 +------------------------+------------+------------+------------+------------+------------+------------+
67 | OVS ARP responder      | V          | X*         |            | X*         |            |            |
68 +------------------------+------------+------------+------------+------------+------------+------------+
69 | OVS agent              | V          | Partial    |            | V          |            | V          |
70 +------------------------+------------+------------+------------+------------+------------+------------+
71 | Linux Bridge agent     | V          | X          |            | X          |            | Non-voting |
72 +------------------------+------------+------------+------------+------------+------------+------------+
73 | Metering               | V          | X          | V          | X          |            |            |
74 +------------------------+------------+------------+------------+------------+------------+------------+
75 | DHCP agent             | V          | 136834     |            | amuller    |            | V          |
76 +------------------------+------------+------------+------------+------------+------------+------------+
77 | rpc_workers            |            |            |            |            |            | X          |
78 +------------------------+------------+------------+------------+------------+------------+------------+
79 | Reference ipam driver  | V          |            |            |            |            | X (?)      |
80 +------------------------+------------+------------+------------+------------+------------+------------+
81 | MTU advertisement      | V          |            |            | X          |            |            |
82 +------------------------+------------+------------+------------+------------+------------+------------+
83 | VLAN transparency      | V          |            | X          | X          |            |            |
84 +------------------------+------------+------------+------------+------------+------------+------------+
85 | Prefix delegation      | V          | X          |            | X          |            |            |
86 +------------------------+------------+------------+------------+------------+------------+------------+
87
88 * DVR DB unit tests often assert that internal methods were called instead of
89   testing functionality. A lot of our unit tests are flawed in this way,
90   and DVR unit tests especially so. An attempt to remedy this was made
91   in patch 178880.
92 * OVS ARP responder cannot be tested at the gate because the gate uses Ubuntu
93   14.04 that only packages OVS 2.0. OVS added ARP manipulation support in
94   version 2.1.
95 * Prefix delegation doesn't have functional tests for the dibbler and pd
96   layers, nor for the L3 agent changes.
97
98 Missing Infrastructure
99 ----------------------
100
101 The following section details missing test *types*. If you want to pick up
102 an action item, please contact amuller for more context and guidance.
103
104 * The Neutron team would like Rally to persist results over a window of time,
105   graph and visualize this data, so that reviewers could compare average runs
106   against a proposed patch.
107 * It's possible to test RPC methods via the unit tests infrastructure. This was
108   proposed in patch 162811. The goal is provide developers a light weight
109   way to rapidly run tests that target the RPC layer, so that a patch that
110   modifies an RPC method's signature could be verified quickly and locally.
111 * Neutron currently does not test an in-place upgrade (Upgrading the server
112   first, followed by agents one machine at a time). We make sure that the RPC
113   layer remains backwards compatible manually via the review process but have
114   no CI that verifies this.