blob: 1ffe71e15814d44edbe23454ab74436ceeee8cc4 [file] [log] [blame]
TorstenThieme53450ff2021-05-11 09:44:33 +00001# Copyright 2021 - present Open Networking Foundation
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7# http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15*** Settings ***
16Documentation Negative test states of ONU Go adapter with ATT workflows only (not for DT/TT workflow!)
17Suite Setup Setup Suite
18Suite Teardown Teardown Suite
19Test Setup Setup
20Test Teardown Teardown
21Library Collections
22Library String
23Library OperatingSystem
24Library XML
25Library RequestsLibrary
26Library ../../libraries/DependencyLibrary.py
27Resource ../../libraries/onos.robot
28Resource ../../libraries/voltctl.robot
29Resource ../../libraries/voltha.robot
30Resource ../../libraries/utils.robot
31Resource ../../libraries/k8s.robot
32Resource ../../libraries/onu_utilities.robot
33Resource ../../libraries/bbsim.robot
34Resource ../../variables/variables.robot
35
36*** Variables ***
Hardik Windlass4288c6a2021-09-28 07:22:06 +000037${NAMESPACE} voltha
38${INFRA_NAMESPACE} default
TorstenThieme53450ff2021-05-11 09:44:33 +000039${timeout} 300s
40${of_id} 0
41${logical_id} 0
42${has_dataplane} True
43${external_libs} True
44${teardown_device} True
45${scripts} ../../scripts
46# Per-test logging on failure is turned off by default; set this variable to enable
47${container_log_dir} ${None}
48# KV Store Prefix
Andrea Campanella388cd872022-02-10 09:11:39 +010049# example: -v kvstoreprefix:voltha/voltha_voltha
50${kvstoreprefix} voltha/voltha_voltha
TorstenThieme53450ff2021-05-11 09:44:33 +000051# used tech profile, can be passed via the command line too, valid values: default (=1T1GEM), 1T4GEM, 1T8GEM
52# example: -v techprofile:1T4GEM
53${techprofile} default
54# flag debugmode is used, if true timeout calculation various, can be passed via the command line too
55# example: -v debugmode:True
56${debugmode} False
57# logging flag to enable Collect Logs, can be passed via the command line too
58# example: -v logging:True
59${logging} False
60# if True execution will be paused before clean up, only use in case of manual testing, do not use in ci pipeline!
61# example: -v pausebeforecleanup:True
62${pausebeforecleanup} False
63# if True some outputs to console are done during running tests e.g. long duration flow test
64# example: -v print2console:True
65${print2console} False
66${data_dir} ../data
67
Hardik Windlassb1bda362021-11-24 11:54:36 +000068# flag to choose the subscriber provisioning command type in ONOS
69# TT often provision a single services for a subscriber (eg: hsia, voip, ...) one after the other.
70# if set to True, command used is "volt-add-subscriber-unitag"
71# if set to False, comand used is "volt-add-subscriber-access"
72${unitag_sub} False
TorstenThieme53450ff2021-05-11 09:44:33 +000073
74*** Test Cases ***
75ONU Negative State Test
76 [Documentation] Validates the ONU Go adapter states will never leave starting-openomci
77 ... Due to a 'omci-response-rate' lower than 8 more OMCI messages will be through away by BBSIM than
78 ... repeated by openonu-go-adapter. So ONU will never leave starting-openomci state.
79 ... Timeout has to set at least to 300s (or more)
80 [Tags] NegativeStateTestOnuGo
81 [Setup] Run Keywords Start Logging ONUNegativeStateTest
82 ... AND Setup
83 # Suite Variable will be overwritten by Teardown of Current State Test All Onus
84 Set Suite Variable ${StateTestAllONUs} True
85 ${seconds}= Convert Time ${timeout}
86 ${seconds}= Convert To String ${seconds}
87 ${seconds}= Get Substring ${seconds} 0 -2
88 FOR ${I} IN RANGE ${seconds}
89 Sleep 1s
90 Current State Test All Onus starting-openomci timeout=1x
91 Exit For Loop If not ${StateTestAllONUs}
92 END
TorstenThieme373adfe2021-12-16 13:03:04 +000093 [Teardown] Run Keywords Printout ONU Serial Number and Device Id print2console=${print2console}
94 ... AND Run Keyword If ${logging} Collect Logs
TorstenThieme53450ff2021-05-11 09:44:33 +000095 ... AND Stop Logging ONUStateTest
96
97
98*** Keywords ***
99Setup Suite
100 [Documentation] Set up the test suite
Andrea Campanella82add372021-11-05 12:01:15 +0100101 Start Logging Setup or Teardown Setup-${SUITE NAME}
TorstenThieme53450ff2021-05-11 09:44:33 +0000102 ${LogInfo}= Catenate
103 ... \r\nPassed arguments:
104 ... techprofile:${techprofile},
105 ... debugmode:${debugmode}, logging:${logging}, pausebeforecleanup:${pausebeforecleanup},
106 ... print2console:${print2console}
107 Log ${LogInfo} console=yes
108 Common Test Suite Setup
109 ${techprofile}= Set Variable If "${techprofile}"=="1T1GEM" default ${techprofile}
110 Set Suite Variable ${techprofile}
111 Run Keyword If "${techprofile}"=="default" Log To Console \nTechProfile:default (1T1GEM)
Hardik Windlass4288c6a2021-09-28 07:22:06 +0000112 ... ELSE IF "${techprofile}"=="1T4GEM" Set Tech Profile 1T4GEM ${INFRA_NAMESPACE}
113 ... ELSE IF "${techprofile}"=="1T8GEM" Set Tech Profile 1T8GEM ${INFRA_NAMESPACE}
TorstenThieme53450ff2021-05-11 09:44:33 +0000114 ... ELSE Fail The TechProfile (${techprofile}) is not valid!
TorstenThieme53450ff2021-05-11 09:44:33 +0000115 # delete etcd MIB Template Data
Hardik Windlass4288c6a2021-09-28 07:22:06 +0000116 Delete MIB Template Data ${INFRA_NAMESPACE}
TorstenThieme53450ff2021-05-11 09:44:33 +0000117 # delete etcd onu data
Hardik Windlass4288c6a2021-09-28 07:22:06 +0000118 Delete ONU Go Adapter ETCD Data namespace=${INFRA_NAMESPACE} validate=True
Andrea Campanella82add372021-11-05 12:01:15 +0100119 Run Keyword If ${logging} Collect Logs
120 Stop Logging Setup or Teardown Setup-${SUITE NAME}
TorstenThieme53450ff2021-05-11 09:44:33 +0000121
122Teardown Suite
123 [Documentation] Replaces the Suite Teardown in utils.robot.
124 ... Cleans up and checks all ONU ports disabled in ONOS.
125 ... Furthermore gives the possibility to pause the execution.
Andrea Campanella82add372021-11-05 12:01:15 +0100126 Start Logging Setup or Teardown Teardown-${SUITE NAME}
TorstenThieme53450ff2021-05-11 09:44:33 +0000127 Run Keyword If ${pausebeforecleanup} Import Library Dialogs
128 Run Keyword If ${pausebeforecleanup} Pause Execution Press OK to continue with clean up!
129 Run Keyword If ${pausebeforecleanup} Log Teardown will be continued... console=yes
130 Run Keyword If ${teardown_device} Delete All Devices and Verify
Hardik Windlass4288c6a2021-09-28 07:22:06 +0000131 Wait Until Keyword Succeeds ${timeout} 1s Validate Onu Data In Etcd ${INFRA_NAMESPACE} 0 ${kvstoreprefix}
132 ... without_pm_data=False
TorstenThieme731a7592021-07-01 14:26:54 +0000133 Wait for Ports in ONOS for all OLTs ${ONOS_SSH_IP} ${ONOS_SSH_PORT} 0 BBSM ${timeout}
Andrea Campanella82add372021-11-05 12:01:15 +0100134 Run Keyword If ${logging} Collect Logs
135 Stop Logging Setup or Teardown Teardown-${SUITE NAME}
TorstenThieme53450ff2021-05-11 09:44:33 +0000136 Close All ONOS SSH Connections
Hardik Windlass4288c6a2021-09-28 07:22:06 +0000137 Remove Tech Profile ${INFRA_NAMESPACE}