blob: 0c8f36ed122b0d39b662f206a99587eaa3a1fd6d [file] [log] [blame]
Suchitra Vemuri2f1e07d2020-06-26 19:18:01 -07001# Copyright 2017 - 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# FIXME Can we use the same test against BBSim and Hardware?
15
16*** Settings ***
17Documentation Test various functional end-to-end scenarios for TT workflow
18Suite Setup Setup Suite
19Test Setup Setup
20Test Teardown Teardown
21Suite Teardown Teardown Suite
22Library Collections
23Library String
24Library OperatingSystem
25Library XML
26Library RequestsLibrary
27Library ../../libraries/DependencyLibrary.py
28Resource ../../libraries/onos.robot
29Resource ../../libraries/voltctl.robot
30Resource ../../libraries/voltha.robot
31Resource ../../libraries/utils.robot
32Resource ../../libraries/k8s.robot
33Resource ../../variables/variables.robot
34Resource ../../libraries/power_switch.robot
35
36*** Variables ***
37${POD_NAME} flex-ocp-cord
38${KUBERNETES_CONF} ${KUBERNETES_CONFIGS_DIR}/${POD_NAME}.conf
39${KUBERNETES_CONFIGS_DIR} ~/pod-configs/kubernetes-configs
40#${KUBERNETES_CONFIGS_DIR} ${KUBERNETES_CONFIGS_DIR}/${POD_NAME}.conf
41${KUBERNETES_YAML} ${KUBERNETES_CONFIGS_DIR}/${POD_NAME}.yml
42${HELM_CHARTS_DIR} ~/helm-charts
43${VOLTHA_POD_NUM} 8
44${NAMESPACE} voltha
45# For below variable value, using deployment name as using grep for
46# parsing radius pod name, we can also use full radius pod name
47${RESTART_POD_NAME} radius
48${timeout} 60s
49${of_id} 0
50${logical_id} 0
51${has_dataplane} True
52${teardown_device} False
53${scripts} ../../scripts
54
55# Per-test logging on failure is turned off by default; set this variable to enable
56${container_log_dir} ${None}
57
58*** Test Cases ***
59Reboot TT ONUs Physically - Clean Up
60 [Documentation] This test reboots ONUs physically before execution all the tests
61 ... Test case runs only on the PODs that are configured with PowerSwitch that
62 ... controls the power off/on ONUs/OLT remotely (simulating a physical reboot)
63 [Tags] functional PowerSwitch RebootAllTTONUs
64 [Setup] Start Logging RebootAllTTONUs
65 [Teardown] Run Keywords Collect Logs
66 ... AND Stop Logging RebootAllTTONUs
67 Power Switch Connection Suite ${web_power_switch.ip} ${web_power_switch.user} ${web_power_switch.password}
68 FOR ${I} IN RANGE 0 ${num_onus}
69 ${src}= Set Variable ${hosts.src[${I}]}
70 ${dst}= Set Variable ${hosts.dst[${I}]}
71 Disable Switch Outlet ${src['power_switch_port']}
72 Sleep 60s
73 Enable Switch Outlet ${src['power_switch_port']}
74 Sleep 60s
75 END
76
Suchitra Vemuri85cb7d62020-07-16 23:46:16 -070077Sanity E2E Test for TT (HSIA, VoD, VoIP)
Suchitra Vemuri2f1e07d2020-06-26 19:18:01 -070078 [Documentation] Validates E2E Ping Connectivity and object states for the given scenario:
79 ... Validate successful DHCP/E2E ping (no EAPOL and DHCP flows) for the tech profile that is used
80 ... Traffic sent with same vlan from different RGs,
81 ... should reach the NNI port on the OLT with the expected double tagged vlan ids
82 ... Inner vlans from the RG should not change
83 [Tags] sanityTT
84 [Setup] Run Keywords Start Logging SanityTestTT
85 ... AND Setup
86 [Teardown] Run Keywords Collect Logs
87 ... AND Stop Logging SanityTestTT
88 Run Keyword If ${has_dataplane} Clean Up Linux
89 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test TT
Suchitra Vemuri32dea012020-07-08 16:40:06 -070090 #Run Keyword If ${has_dataplane} Clean Up Linux
Suchitra Vemuri2f1e07d2020-06-26 19:18:01 -070091
Suchitra Vemuri85cb7d62020-07-16 23:46:16 -070092Sanity E2E Test for TT (MCAST)
93 [Documentation] Validates E2E Ping Connectivity and object states for the given scenario:
94 ... Validate successful DHCP/E2E ping (no EAPOL and DHCP flows) for the tech profile that is used
95 ... Traffic sent with same vlan from different RGs,
96 ... should reach the NNI port on the OLT with the expected double tagged vlan ids
97 ... Inner vlans from the RG should not change
98 [Tags] sanityTT-MCAST
99 [Setup] Run Keyword Start Logging SanityTestTT-MCAST
100 [Teardown] Run Keywords Collect Logs
101 ... AND Stop Logging SanityTestTT-MCAST
102 Run Keyword If ${has_dataplane} Clean Up Linux
103 Wait Until Keyword Succeeds ${timeout} 2s Perform Sanity Test TT MCAST
104
Suchitra Vemuri2f1e07d2020-06-26 19:18:01 -0700105*** Keywords ***
106Setup Suite
107 [Documentation] Set up the test suite
108 Common Test Suite Setup
109 ${switch_type}= Get Variable Value ${web_power_switch.type}
110 Run Keyword If "${switch_type}"!="" Set Global Variable ${powerswitch_type} ${switch_type}
111
112
113Clear All Devices Then Create New Device
114 [Documentation] Remove any devices from VOLTHA and ONOS
115 # Remove all devices from voltha and nos
116 Delete All Devices and Verify
117 # Execute normal test Setup Keyword
118 Setup
119
Suchitra Vemuri32dea012020-07-08 16:40:06 -0700120
121Teardown Suite
122 [Documentation] Tear down steps for the suite
123 Run Keyword If ${has_dataplane} Clean Up Linux