blob: 39aea2a9b2d0cab5e7ad100d2a6a0d47cb448eef [file] [log] [blame]
Hardik Windlass1808a712022-03-10 11:23:30 +00001Voltha Test Automation
2======================
3
Joey Armstrong2bc25ac2024-04-19 12:21:42 -04004This page shows how the Voltha tests are automated to run on
5`OpenCORD Jenkins <https://jenkins.opencord.org/>`_.
Hardik Windlass1808a712022-03-10 11:23:30 +00006
Joey Armstrong2bc25ac2024-04-19 12:21:42 -04007Tests of different workflows, i.e. ATT, DT and TT, with various
8configurations based on either BBSim deployment or actual Physical POD run
9on Jenkins periodically.
Hardik Windlass1808a712022-03-10 11:23:30 +000010
11.. figure:: ../_static/Voltha_Test_Automation_Jenkins.png
12 :alt: Voltha OpenCord Jenkins
13 :width: 70%
14 :align: center
15
16 Voltha OpenCord Jenkins
17
Eric Ball4cc56b02025-03-25 12:36:33 -070018Similar set of jobs are kept under similar tabs. For example, jobs related to
19the voltha-2.13 release are in VOLTHA-2.13 tab.
Hardik Windlass1808a712022-03-10 11:23:30 +000020
Joey Armstrong2bc25ac2024-04-19 12:21:42 -040021Likewise, tests that collect measurements on Voltha performance at scale
22are placed under `voltha-scale-measurements <https://jenkins.opencord.org/view/voltha-scale-measurements/>`_.
Hardik Windlass1808a712022-03-10 11:23:30 +000023
Eric Ball4cc56b02025-03-25 12:36:33 -070024Jenkins also hosts verification jobs that trigger automatically whenever a patch
25is pushed or updated on Gerrit for the review.
Hardik Windlass1808a712022-03-10 11:23:30 +000026
27
28Job Templates
29^^^^^^^^^^^^^
30
Joey Armstrong2bc25ac2024-04-19 12:21:42 -040031Templates for the jobs are defined in
32`ci-management <https://github.com/opencord/ci-management>`__ repo.
Hardik Windlass1808a712022-03-10 11:23:30 +000033
34
35BBSim Jobs
36^^^^^^^^^^
37
Joey Armstrong2bc25ac2024-04-19 12:21:42 -040038OpenCORD Jenkins host a large number of BBSim based regression jobs that
39run periodically with different deployment configurations to verify Voltha
40control plane functionality for different operator workflows. Such as,
Hardik Windlass1808a712022-03-10 11:23:30 +000041
42- `periodic-voltha-test-bbsim <https://jenkins.opencord.org/job/periodic-voltha-test-bbsim/>`_ & `periodic-voltha-multiple-olts-test-bbsim <https://jenkins.opencord.org/job/periodic-voltha-multiple-olts-test-bbsim/>`_ : tests Voltha functional scenarios, recovery and error scenarios, ONOS HA scenarios etc. for ATT
43- `periodic-voltha-multi-uni-test-bbsim <https://jenkins.opencord.org/job/periodic-voltha-multi-uni-test-bbsim/>`_ & `periodic-voltha-multi-uni-multiple-olts-test-bbsim <https://jenkins.opencord.org/job/periodic-voltha-multi-uni-multiple-olts-test-bbsim/>`_ : tests Voltha functionality with multiple UNIs enabled, and with single & multiple OLT (BBSim) deployments
Joey Armstrongc5427b22023-08-15 08:55:33 -040044- `periodic-voltha-dt-test-bbsim <https://jenkins.opencord.org/job/periodic-voltha-dt-test-bbsim-master>`_ : tests functional and failure scenarios for DT workflow
Joey Armstrong449ce7a2023-07-18 18:32:24 -040045- `periodic-voltha-dt-fttb-test-bbsim <https://jenkins.opencord.org/job/periodic-voltha-dt-fttb-test-bbsim-master/>`_ : tests functional scenarios for DT FTTB workflow
Hardik Windlass1808a712022-03-10 11:23:30 +000046- `periodic-voltha-unitag-subscriber-tt-test-bbsim <https://jenkins.opencord.org/job/periodic-voltha-unitag-subscriber-tt-test-bbsim/>`_ : tests Voltha functionality with UNI-Tag Subscriber provisioning enabled for TT workflow
47- `periodic-voltha-tt-maclearner-sanity-test-bbsim <https://jenkins.opencord.org/job/periodic-voltha-tt-maclearner-sanity-test-bbsim/>`_ : tests Voltha functionality with MAC Learner enabled for TT workflow
48- `periodic-software-upgrade-test-bbsim <https://jenkins.opencord.org/job/periodic-software-upgrade-test-bbsim/>`_ : tests ONOS Applications, Voltha Components and ONU Software Upgrades
49- `periodic-voltha-openonu-go-test-bbsim <https://jenkins.opencord.org/job/periodic-voltha-openonu-go-test-bbsim/>`_ & `periodic-voltha-multiple-olts-openonu-go-test-bbsim <https://jenkins.opencord.org/job/periodic-voltha-multiple-olts-openonu-go-test-bbsim/>`_ : tests state for ONU Go adapter with different operator workflows, different constellations and tech profiles
50- `periodic-voltha-pm-data-test-bbsim <https://jenkins.opencord.org/job/periodic-voltha-pm-data-test-bbsim/>`_ & `periodic-voltha-multiple-olts-pm-data-test-bbsim <https://jenkins.opencord.org/job/periodic-voltha-multiple-olts-pm-data-test-bbsim/>`_ : tests Open ONU Go adapter PM data
51- `periodic-voltha-etcd-test <https://jenkins.opencord.org/job/periodic-voltha-etcd-test/>`_ : tests Voltha etcd functionality
52- `periodic-voltha-test-DMI <https://jenkins.opencord.org/job/periodic-voltha-test-DMI/>`_ : tests device management interface functionality
Hardik Windlass9d8e6c82022-03-23 08:28:43 +000053- `periodic-voltha-memory-leak-test-bbsim <https://jenkins.opencord.org/job/periodic-voltha-memory-leak-test-bbsim/>`_ : tests and catches memory leak in Voltha components
Hardik Windlass1808a712022-03-10 11:23:30 +000054
55Similar to the above mentioned jobs which are based on **master**,
Joey Armstrong2bc25ac2024-04-19 12:21:42 -040056Jenkins has regression jobs for other Voltha releases as well, like
57votlha-2.11 and voltha-2.12.
Hardik Windlass1808a712022-03-10 11:23:30 +000058
Joey Armstrong2bc25ac2024-04-19 12:21:42 -040059The template for the jobs that run on BBSim based deployment is defined
60`here <https://github.com/opencord/ci-management/blob/master/jjb/voltha-e2e.yaml>`__.
Hardik Windlass1808a712022-03-10 11:23:30 +000061
62BBSim based deployment is also used to test Voltha at scale.
63The scale jobs run the tests that collect measurements on Voltha performance.
64
65Scale jobs do the deployment with various combinations
66like single or multiple voltha stacks with one or more BBSim based OLTs,
67multiple PONs and ONUs thus testing 4000+ subscribers for different workflows.
68More details about scale jobs can be found `here <https://jenkins.opencord.org/view/voltha-scale-measurements/>`__.
69
70
71Hardware (or Physical POD) Jobs
72^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
73
Joey Armstrong2bc25ac2024-04-19 12:21:42 -040074OpenCord Jenkins host various regression jobs that runs on the ONF physical
75pods situated at different geographical locations. Hardware jobs test both
76control and dataplane functionality of Voltha.
Hardik Windlass1808a712022-03-10 11:23:30 +000077
Joey Armstrong2bc25ac2024-04-19 12:21:42 -040078These hardware jobs are mostly defined in a combination of a build job and
79a test job. The template for the jobs that run on physical pod is defined
80`here <https://github.com/opencord/ci-management/blob/master/jjb/voltha-test/voltha-nightly-jobs.yaml>`__.
Hardik Windlass1808a712022-03-10 11:23:30 +000081
Joey Armstrong2bc25ac2024-04-19 12:21:42 -040082Some of the configurations that are currently being tested on ONF's
83Physical Pods are:
Hardik Windlass1808a712022-03-10 11:23:30 +000084
85- Default Technology Profile with master or LTS release build for ATT
86- 1T4GEM profile with master or LTS release build for ATT
87- 1T4GEM-unencrypted profile with master or LTS release build for ATT
88- 1T8GEM Technology Profile with master or LTS release build for DT
89- 1T8GEM Technology Profile with master or LTS release build for DT with GPON based OLT setup
90- 1T8GEM Technology Profile with master or LTS release build for DT with multiple OLTs setup
91- Different service based Technology Profiles with master or LTS release build for TT
92- Different service based profiles with master or LTS release build for TT with multiple UNIs enabled
93
94
95Per-Patchset Verification Jobs
96^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
97
Joey Armstrong2bc25ac2024-04-19 12:21:42 -040098The verification jobs gets triggered automatically whenever a patch is
99pushed or updated on Gerrit, e.g.
Hardik Windlass1808a712022-03-10 11:23:30 +0000100
Joey Armstrong2bc25ac2024-04-19 12:21:42 -0400101- verify_{project}_licensed : This job verifies that there is valid
102 license/copyright on files.
103- verify_{project}_tag-collision : This job checks for changes to version
104 files, and that they don't duplicate tags already in the git repo.
Hardik Windlass1808a712022-03-10 11:23:30 +0000105- verify_{project}_unit-test : This job runs the Makefile based unit tests.
Joey Armstrong2bc25ac2024-04-19 12:21:42 -0400106- verify_{project}_sanity-test : This job verifies that basic Voltha
107 functionality is not broken for any of the operator workflows.
Hardik Windlass1808a712022-03-10 11:23:30 +0000108
Joey Armstrong2bc25ac2024-04-19 12:21:42 -0400109Apart from system triggered jobs, there are some verification jobs which
110can be triggered by the user by providing apt comment in the Gerrit patch,
111e.g.
Hardik Windlass1808a712022-03-10 11:23:30 +0000112
Joey Armstrong2bc25ac2024-04-19 12:21:42 -0400113- *hardware test functional tests* : This comment triggers the run on a
114 dedicated physical pod and executes the entire functional test suite for ATT.
Hardik Windlass1808a712022-03-10 11:23:30 +0000115
Joey Armstrong2bc25ac2024-04-19 12:21:42 -0400116- *hardware test functional tests DT* : This comment triggers the functional
117 suite tests for DT.
118- *voltha test openonu singleolt* :
119 Triggers patchset-voltha-openonu-go-test-bbsim job.
120- *voltha 2.9 test openonu singleolt* :
121 Triggers patchset-voltha-2.9-openonu-go-test-bbsim job.
122- *voltha 2.8 test openonu singleolt* :
123 Triggers patchset-voltha-2.8-openonu-go-test-bbsim job.
124- *voltha test openonu multiolt* :
125 Triggers patchset-voltha-multiple-olts-openonu-go-test-bbsim job.
126- *voltha 2.9 test openonu multiolt* :
127 Triggers patchset-voltha-2.9-multiple-olts-openonu-go-test-bbsim job.
128- *voltha 2.8 test openonu multiolt* :
129 Triggers patchset-voltha-2.8-multiple-olts-openonu-go-test-bbsim job.
130- *voltha test pm data singleolt* :
131 Triggers patchset-voltha-pm-data-test-bbsim job.
132- *voltha test pm data multiolt* :
133 Triggers patchset-voltha-multiple-olts-pm-data-test-bbsim job.
134
135The templates for the above mentioned and other similar jobs can be found
136in the `ci-management <https://github.com/opencord/ci-management>`__ repo.