Hardik Windlass | 1808a71 | 2022-03-10 11:23:30 +0000 | [diff] [blame] | 1 | Voltha Test Automation |
| 2 | ====================== |
| 3 | |
Joey Armstrong | 2bc25ac | 2024-04-19 12:21:42 -0400 | [diff] [blame] | 4 | This page shows how the Voltha tests are automated to run on |
| 5 | `OpenCORD Jenkins <https://jenkins.opencord.org/>`_. |
Hardik Windlass | 1808a71 | 2022-03-10 11:23:30 +0000 | [diff] [blame] | 6 | |
Joey Armstrong | 2bc25ac | 2024-04-19 12:21:42 -0400 | [diff] [blame] | 7 | Tests of different workflows, i.e. ATT, DT and TT, with various |
| 8 | configurations based on either BBSim deployment or actual Physical POD run |
| 9 | on Jenkins periodically. |
Hardik Windlass | 1808a71 | 2022-03-10 11:23:30 +0000 | [diff] [blame] | 10 | |
| 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 Ball | 4cc56b0 | 2025-03-25 12:36:33 -0700 | [diff] [blame] | 18 | Similar set of jobs are kept under similar tabs. For example, jobs related to |
| 19 | the voltha-2.13 release are in VOLTHA-2.13 tab. |
Hardik Windlass | 1808a71 | 2022-03-10 11:23:30 +0000 | [diff] [blame] | 20 | |
Joey Armstrong | 2bc25ac | 2024-04-19 12:21:42 -0400 | [diff] [blame] | 21 | Likewise, tests that collect measurements on Voltha performance at scale |
| 22 | are placed under `voltha-scale-measurements <https://jenkins.opencord.org/view/voltha-scale-measurements/>`_. |
Hardik Windlass | 1808a71 | 2022-03-10 11:23:30 +0000 | [diff] [blame] | 23 | |
Eric Ball | 4cc56b0 | 2025-03-25 12:36:33 -0700 | [diff] [blame] | 24 | Jenkins also hosts verification jobs that trigger automatically whenever a patch |
| 25 | is pushed or updated on Gerrit for the review. |
Hardik Windlass | 1808a71 | 2022-03-10 11:23:30 +0000 | [diff] [blame] | 26 | |
| 27 | |
| 28 | Job Templates |
| 29 | ^^^^^^^^^^^^^ |
| 30 | |
Joey Armstrong | 2bc25ac | 2024-04-19 12:21:42 -0400 | [diff] [blame] | 31 | Templates for the jobs are defined in |
| 32 | `ci-management <https://github.com/opencord/ci-management>`__ repo. |
Hardik Windlass | 1808a71 | 2022-03-10 11:23:30 +0000 | [diff] [blame] | 33 | |
| 34 | |
| 35 | BBSim Jobs |
| 36 | ^^^^^^^^^^ |
| 37 | |
Joey Armstrong | 2bc25ac | 2024-04-19 12:21:42 -0400 | [diff] [blame] | 38 | OpenCORD Jenkins host a large number of BBSim based regression jobs that |
| 39 | run periodically with different deployment configurations to verify Voltha |
| 40 | control plane functionality for different operator workflows. Such as, |
Hardik Windlass | 1808a71 | 2022-03-10 11:23:30 +0000 | [diff] [blame] | 41 | |
| 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 Armstrong | c5427b2 | 2023-08-15 08:55:33 -0400 | [diff] [blame] | 44 | - `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 Armstrong | 449ce7a | 2023-07-18 18:32:24 -0400 | [diff] [blame] | 45 | - `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 Windlass | 1808a71 | 2022-03-10 11:23:30 +0000 | [diff] [blame] | 46 | - `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 Windlass | 9d8e6c8 | 2022-03-23 08:28:43 +0000 | [diff] [blame] | 53 | - `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 Windlass | 1808a71 | 2022-03-10 11:23:30 +0000 | [diff] [blame] | 54 | |
| 55 | Similar to the above mentioned jobs which are based on **master**, |
Joey Armstrong | 2bc25ac | 2024-04-19 12:21:42 -0400 | [diff] [blame] | 56 | Jenkins has regression jobs for other Voltha releases as well, like |
| 57 | votlha-2.11 and voltha-2.12. |
Hardik Windlass | 1808a71 | 2022-03-10 11:23:30 +0000 | [diff] [blame] | 58 | |
Joey Armstrong | 2bc25ac | 2024-04-19 12:21:42 -0400 | [diff] [blame] | 59 | The 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 Windlass | 1808a71 | 2022-03-10 11:23:30 +0000 | [diff] [blame] | 61 | |
| 62 | BBSim based deployment is also used to test Voltha at scale. |
| 63 | The scale jobs run the tests that collect measurements on Voltha performance. |
| 64 | |
| 65 | Scale jobs do the deployment with various combinations |
| 66 | like single or multiple voltha stacks with one or more BBSim based OLTs, |
| 67 | multiple PONs and ONUs thus testing 4000+ subscribers for different workflows. |
| 68 | More details about scale jobs can be found `here <https://jenkins.opencord.org/view/voltha-scale-measurements/>`__. |
| 69 | |
| 70 | |
| 71 | Hardware (or Physical POD) Jobs |
| 72 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 73 | |
Joey Armstrong | 2bc25ac | 2024-04-19 12:21:42 -0400 | [diff] [blame] | 74 | OpenCord Jenkins host various regression jobs that runs on the ONF physical |
| 75 | pods situated at different geographical locations. Hardware jobs test both |
| 76 | control and dataplane functionality of Voltha. |
Hardik Windlass | 1808a71 | 2022-03-10 11:23:30 +0000 | [diff] [blame] | 77 | |
Joey Armstrong | 2bc25ac | 2024-04-19 12:21:42 -0400 | [diff] [blame] | 78 | These hardware jobs are mostly defined in a combination of a build job and |
| 79 | a 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 Windlass | 1808a71 | 2022-03-10 11:23:30 +0000 | [diff] [blame] | 81 | |
Joey Armstrong | 2bc25ac | 2024-04-19 12:21:42 -0400 | [diff] [blame] | 82 | Some of the configurations that are currently being tested on ONF's |
| 83 | Physical Pods are: |
Hardik Windlass | 1808a71 | 2022-03-10 11:23:30 +0000 | [diff] [blame] | 84 | |
| 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 | |
| 95 | Per-Patchset Verification Jobs |
| 96 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 97 | |
Joey Armstrong | 2bc25ac | 2024-04-19 12:21:42 -0400 | [diff] [blame] | 98 | The verification jobs gets triggered automatically whenever a patch is |
| 99 | pushed or updated on Gerrit, e.g. |
Hardik Windlass | 1808a71 | 2022-03-10 11:23:30 +0000 | [diff] [blame] | 100 | |
Joey Armstrong | 2bc25ac | 2024-04-19 12:21:42 -0400 | [diff] [blame] | 101 | - 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 Windlass | 1808a71 | 2022-03-10 11:23:30 +0000 | [diff] [blame] | 105 | - verify_{project}_unit-test : This job runs the Makefile based unit tests. |
Joey Armstrong | 2bc25ac | 2024-04-19 12:21:42 -0400 | [diff] [blame] | 106 | - verify_{project}_sanity-test : This job verifies that basic Voltha |
| 107 | functionality is not broken for any of the operator workflows. |
Hardik Windlass | 1808a71 | 2022-03-10 11:23:30 +0000 | [diff] [blame] | 108 | |
Joey Armstrong | 2bc25ac | 2024-04-19 12:21:42 -0400 | [diff] [blame] | 109 | Apart from system triggered jobs, there are some verification jobs which |
| 110 | can be triggered by the user by providing apt comment in the Gerrit patch, |
| 111 | e.g. |
Hardik Windlass | 1808a71 | 2022-03-10 11:23:30 +0000 | [diff] [blame] | 112 | |
Joey Armstrong | 2bc25ac | 2024-04-19 12:21:42 -0400 | [diff] [blame] | 113 | - *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 Windlass | 1808a71 | 2022-03-10 11:23:30 +0000 | [diff] [blame] | 115 | |
Joey Armstrong | 2bc25ac | 2024-04-19 12:21:42 -0400 | [diff] [blame] | 116 | - *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 | |
| 135 | The templates for the above mentioned and other similar jobs can be found |
| 136 | in the `ci-management <https://github.com/opencord/ci-management>`__ repo. |