Hardik Windlass | 1808a71 | 2022-03-10 11:23:30 +0000 | [diff] [blame] | 1 | Voltha Test Automation |
| 2 | ====================== |
| 3 | |
| 4 | This page shows how the Voltha tests are automated to run on `OpenCORD Jenkins <https://jenkins.opencord.org/>`_. |
| 5 | |
| 6 | Tests of different workflows, i.e. ATT, DT and TT, with various configurations based on either BBSim deployment or |
| 7 | actual Physical POD run on Jenkins periodically. |
| 8 | |
| 9 | .. figure:: ../_static/Voltha_Test_Automation_Jenkins.png |
| 10 | :alt: Voltha OpenCord Jenkins |
| 11 | :width: 70% |
| 12 | :align: center |
| 13 | |
| 14 | Voltha OpenCord Jenkins |
| 15 | |
| 16 | Similar set of jobs are kept under similar tabs. Like, |
| 17 | all the master build jobs are placed under `VOLTHA-2.X-Tests <https://jenkins.opencord.org/view/VOLTHA-2.X-Tests/>`_ tab, |
| 18 | jobs related to the voltha-2.8 LTS release are in VOLTHA-2.8 tab. |
| 19 | |
| 20 | Likewise, tests that collect measurements on Voltha performance at scale are placed under `voltha-scale-measurements <https://jenkins.opencord.org/view/voltha-scale-measurements/>`_, |
| 21 | and the Voltha Soak testing jobs are kept under the tab named `voltha-soak <https://jenkins.opencord.org/view/voltha-soak/>`_. |
| 22 | |
| 23 | Jenkins also host `verification jobs <https://jenkins.opencord.org/view/VOLTHA%202.x%20verify/>`_ that trigger automatically whenever a patch is pushed or updated on Gerrit for the review. |
| 24 | |
| 25 | |
| 26 | Job Templates |
| 27 | ^^^^^^^^^^^^^ |
| 28 | |
| 29 | Templates for the jobs are defined in `ci-management <https://github.com/opencord/ci-management>`__ repo. |
| 30 | |
| 31 | |
| 32 | BBSim Jobs |
| 33 | ^^^^^^^^^^ |
| 34 | |
| 35 | OpenCORD Jenkins host a large number of BBSim based regression jobs that run periodically |
| 36 | with different deployment configurations to verify Voltha control plane functionality |
| 37 | for different operator workflows. Such as, |
| 38 | |
| 39 | - `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 |
| 40 | - `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 |
| 41 | - `periodic-voltha-dt-test-bbsim <https://jenkins.opencord.org/job/periodic-voltha-dt-test-bbsim/>`_ : tests functional and failure scenarios for DT workflow |
Hardik Windlass | 138d9fb | 2022-03-24 03:26:43 +0000 | [diff] [blame] | 42 | - `periodic-voltha-dt-fttb-test-bbsim <https://jenkins.opencord.org/job/periodic-voltha-dt-fttb-test-bbsim/>`_ : tests functional scenarios for DT FTTB workflow |
Hardik Windlass | 1808a71 | 2022-03-10 11:23:30 +0000 | [diff] [blame] | 43 | - `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 |
| 44 | - `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 |
| 45 | - `periodic-software-upgrade-test-bbsim <https://jenkins.opencord.org/job/periodic-software-upgrade-test-bbsim/>`_ : tests ONOS Applications, Voltha Components and ONU Software Upgrades |
| 46 | - `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 |
| 47 | - `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 |
| 48 | - `periodic-voltha-etcd-test <https://jenkins.opencord.org/job/periodic-voltha-etcd-test/>`_ : tests Voltha etcd functionality |
| 49 | - `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] | 50 | - `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] | 51 | |
| 52 | Similar to the above mentioned jobs which are based on **master**, |
| 53 | Jenkins has regression jobs for other Voltha releases as well, like votlha-2.8 and voltha-2.9. |
| 54 | |
| 55 | The template for the jobs that run on BBSim based deployment is defined `here <https://github.com/opencord/ci-management/blob/master/jjb/voltha-e2e.yaml>`__. |
| 56 | |
| 57 | BBSim based deployment is also used to test Voltha at scale. |
| 58 | The scale jobs run the tests that collect measurements on Voltha performance. |
| 59 | |
| 60 | Scale jobs do the deployment with various combinations |
| 61 | like single or multiple voltha stacks with one or more BBSim based OLTs, |
| 62 | multiple PONs and ONUs thus testing 4000+ subscribers for different workflows. |
| 63 | More details about scale jobs can be found `here <https://jenkins.opencord.org/view/voltha-scale-measurements/>`__. |
| 64 | |
| 65 | |
| 66 | Hardware (or Physical POD) Jobs |
| 67 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 68 | |
| 69 | OpenCord Jenkins host various regression jobs that runs on the ONF physical pods |
| 70 | situated at different geographical locations. |
| 71 | Hardware jobs test both control and dataplane functionality of Voltha. |
| 72 | |
| 73 | These hardware jobs are mostly defined in a combination of a build job and a test job. |
| 74 | The template for the jobs that run on physical pod is defined `here <https://github.com/opencord/ci-management/blob/master/jjb/voltha-test/voltha-nightly-jobs.yaml>`__. |
| 75 | |
| 76 | Some of the configurations that are currently being tested on ONF's Physical Pods are: |
| 77 | |
| 78 | - Default Technology Profile with master or LTS release build for ATT |
| 79 | - 1T4GEM profile with master or LTS release build for ATT |
| 80 | - 1T4GEM-unencrypted profile with master or LTS release build for ATT |
| 81 | - 1T8GEM Technology Profile with master or LTS release build for DT |
| 82 | - 1T8GEM Technology Profile with master or LTS release build for DT with GPON based OLT setup |
| 83 | - 1T8GEM Technology Profile with master or LTS release build for DT with multiple OLTs setup |
| 84 | - Different service based Technology Profiles with master or LTS release build for TT |
| 85 | - Different service based profiles with master or LTS release build for TT with multiple UNIs enabled |
| 86 | |
| 87 | |
| 88 | Per-Patchset Verification Jobs |
| 89 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 90 | |
| 91 | The verification jobs gets triggered automatically whenever a patch is pushed or updated on Gerrit, e.g. |
| 92 | |
| 93 | - verify_{project}_licensed : This job verifies that there is valid license/copyright on files. |
| 94 | - verify_{project}_tag-collision : This job checks for changes to version files, |
| 95 | and that they don't duplicate tags already in the git repo. |
| 96 | - verify_{project}_unit-test : This job runs the Makefile based unit tests. |
| 97 | - verify_{project}_sanity-test : This job verifies that basic Voltha functionality is not broken |
| 98 | for any of the operator workflows. |
| 99 | |
| 100 | Apart from system triggered jobs, there are some verification jobs which can be triggered by the user |
| 101 | by providing apt comment in the Gerrit patch, e.g. |
| 102 | |
Hardik Windlass | 9d8e6c8 | 2022-03-23 08:28:43 +0000 | [diff] [blame] | 103 | - *hardware test functional tests* : This comment triggers the run on a dedicated physical pod |
Hardik Windlass | 1808a71 | 2022-03-10 11:23:30 +0000 | [diff] [blame] | 104 | and executes the entire functional test suite for ATT. |
Hardik Windlass | 9d8e6c8 | 2022-03-23 08:28:43 +0000 | [diff] [blame] | 105 | - *hardware test functional tests DT* : This comment triggers the functional suite tests for DT. |
| 106 | - *voltha test openonu singleolt* : Triggers patchset-voltha-openonu-go-test-bbsim job. |
| 107 | - *voltha 2.9 test openonu singleolt* : Triggers patchset-voltha-2.9-openonu-go-test-bbsim job. |
| 108 | - *voltha 2.8 test openonu singleolt* : Triggers patchset-voltha-2.8-openonu-go-test-bbsim job. |
| 109 | - *voltha test openonu multiolt* : Triggers patchset-voltha-multiple-olts-openonu-go-test-bbsim job. |
| 110 | - *voltha 2.9 test openonu multiolt* : Triggers patchset-voltha-2.9-multiple-olts-openonu-go-test-bbsim job. |
| 111 | - *voltha 2.8 test openonu multiolt* : Triggers patchset-voltha-2.8-multiple-olts-openonu-go-test-bbsim job. |
| 112 | - *voltha test pm data singleolt* : Triggers patchset-voltha-pm-data-test-bbsim job. |
| 113 | - *voltha test pm data multiolt* : Triggers patchset-voltha-multiple-olts-pm-data-test-bbsim job. |
Hardik Windlass | 1808a71 | 2022-03-10 11:23:30 +0000 | [diff] [blame] | 114 | |
| 115 | The templates for the above mentioned and other similar jobs can be found in the |
| 116 | `ci-management <https://github.com/opencord/ci-management>`__ repo. |