aboutsummaryrefslogtreecommitdiffstats
path: root/resources/libraries/robot/shared/testing_path.robot
diff options
context:
space:
mode:
authorPeter Mikus <pmikus@cisco.com>2020-02-21 22:09:02 +0000
committerPeter Mikus <pmikus@cisco.com>2020-04-06 08:27:39 +0000
commit14a71b74b414df7616ccb5ada3d50ecb90d96bae (patch)
treebfee617c9a4b20ce4c6467ffbbe6c0a15199ba52 /resources/libraries/robot/shared/testing_path.robot
parent8e601d0f37f715ca4ce55dded8bc27cadfe175c2 (diff)
Improve pf layer
+ Merge single/double link + Introduce _pf{n}[0] variables so we can access physical function same way as virtual function + Cleanup code by moving complex logic to python + Prepare code for multiple vf functions Signed-off-by: Peter Mikus <pmikus@cisco.com> Change-Id: Ic2e74a38bfa146441357de8f0916aeb638941c49
Diffstat (limited to 'resources/libraries/robot/shared/testing_path.robot')
-rw-r--r--resources/libraries/robot/shared/testing_path.robot380
1 files changed, 0 insertions, 380 deletions
diff --git a/resources/libraries/robot/shared/testing_path.robot b/resources/libraries/robot/shared/testing_path.robot
deleted file mode 100644
index 696e7397a5..0000000000
--- a/resources/libraries/robot/shared/testing_path.robot
+++ /dev/null
@@ -1,380 +0,0 @@
-# Copyright (c) 2018 Cisco and/or its affiliates.
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at:
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-*** Settings ***
-| Library | resources.libraries.python.InterfaceUtil
-| Library | resources.libraries.python.NodePath
-
-*** Keywords ***
-| Configure path in 2-node circular topology
-| | [Documentation] | Compute path for testing on two given nodes in circular
-| | ... | topology and set corresponding test case variables.
-| |
-| | ... | *Arguments:*
-| | ... | - ${tg_node} - TG node. Type: dictionary
-| | ... | - ${dut_node} - DUT node. Type: dictionary
-| | ... | - ${tg2_node} - Node where the path ends. Must be the same as TG node
-| | ... | parameter in circular topology. Type: dictionary
-| |
-| | ... | *Return:*
-| | ... | - No value returned
-| |
-| | ... | _NOTE:_ This KW sets following test case variables:
-| | ... | - ${tg_node} - TG node.
-| | ... | - ${tg_to_dut_if1} - 1st TG interface towards DUT.
-| | ... | - ${tg_to_dut_if2} - 2nd TG interface towards DUT.
-| | ... | - ${dut_node} - DUT node.
-| | ... | - ${dut_to_tg_if1} - 1st DUT interface towards TG.
-| | ... | - ${dut_to_tg_if2} - 2nd DUT interface towards TG.
-| | ... | - ${tg_to_dut_if1_mac}
-| | ... | - ${tg_to_dut_if2_mac}
-| | ... | - ${dut_to_tg_if1_mac}
-| | ... | - ${dut_to_tg_if2_mac}
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Given Configure path in 2-node circular topology \| ${nodes['TG']} \
-| | ... | \| ${nodes['DUT1']} \| ${nodes['TG']} \|
-| |
-| | [Arguments] | ${tg_node} | ${dut_node} | ${tg2_node}
-| | Should Be Equal | ${tg_node} | ${tg2_node}
-| | Append Nodes | ${tg_node} | ${dut_node} | ${tg_node}
-| | Compute Path | always_same_link=${FALSE}
-| | ${tg_to_dut_if1} | ${tmp}= | First Interface
-| | ${tg_to_dut_if2} | ${tmp}= | Last Interface
-| | ${dut_to_tg_if1} | ${tmp}= | First Ingress Interface
-| | ${dut_to_tg_if2} | ${tmp}= | Last Egress Interface
-| | ${tg_to_dut_if1_mac}= | Get interface mac | ${tg_node} | ${tg_to_dut_if1}
-| | ${tg_to_dut_if2_mac}= | Get interface mac | ${tg_node} | ${tg_to_dut_if2}
-| | ${dut_to_tg_if1_mac}= | Get interface mac | ${dut_node} | ${dut_to_tg_if1}
-| | ${dut_to_tg_if2_mac}= | Get interface mac | ${dut_node} | ${dut_to_tg_if2}
-| | Set Test Variable | ${tg_to_dut_if1}
-| | Set Test Variable | ${tg_to_dut_if2}
-| | Set Test Variable | ${dut_to_tg_if1}
-| | Set Test Variable | ${dut_to_tg_if2}
-| | Set Test Variable | ${tg_to_dut_if1_mac}
-| | Set Test Variable | ${tg_to_dut_if2_mac}
-| | Set Test Variable | ${dut_to_tg_if1_mac}
-| | Set Test Variable | ${dut_to_tg_if2_mac}
-| | Set Test Variable | ${tg_node}
-| | Set Test Variable | ${dut_node}
-
-| Set interfaces in 2-node circular topology up
-| | [Documentation] | Set UP state on interfaces in 2-node path on nodes and
-| | ... | wait for all interfaces are ready. Requires more than one link
-| | ... | between nodes.
-| |
-| | ... | *Arguments:*
-| | ... | - No arguments.
-| |
-| | ... | *Return:*
-| | ... | - No value returned.
-| |
-| | ... | _NOTE:_ This KW uses test variables sets in
-| | ... | "Configure path in 2-node circular topology" KW.
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Given Configure path in 2-node circular topology \| ${nodes['TG']} \
-| | ... | \| ${nodes['DUT1']} \| ${nodes['TG']} \|
-| | ... | \| And Set interfaces in 2-node circular topology up \|
-| |
-| | Set Interface State | ${tg_node} | ${tg_to_dut_if1} | up
-| | Set Interface State | ${tg_node} | ${tg_to_dut_if2} | up
-| | Set Interface State | ${dut_node} | ${dut_to_tg_if1} | up
-| | Set Interface State | ${dut_node} | ${dut_to_tg_if2} | up
-| | Vpp Node Interfaces Ready Wait | ${dut_node}
-
-| Configure path in 3-node circular topology
-| | [Documentation] | Compute path for testing on three given nodes in circular
-| | ... | topology and set corresponding test case variables.
-| |
-| | ... | *Arguments:*
-| | ... | - ${tg_node} - TG node. Type: dictionary
-| | ... | - ${dut1_node} - DUT1 node. Type: dictionary
-| | ... | - ${dut2_node} - DUT2 node. Type: dictionary
-| | ... | - ${tg2_node} - Node where the path ends. Must be the same as TG node
-| | ... | parameter in circular topology. Type: dictionary
-| |
-| | ... | *Return:*
-| | ... | - No value returned
-| | ... |
-| | ... | _NOTE:_ This KW sets following test case variables:
-| | ... | - ${tg_node} - TG node.
-| | ... | - ${tg_to_dut1} - TG interface towards DUT1.
-| | ... | - ${tg_to_dut2} - TG interface towards DUT2.
-| | ... | - ${dut1_node} - DUT1 node.
-| | ... | - ${dut1_to_tg} - DUT1 interface towards TG.
-| | ... | - ${dut1_to_dut2} - DUT1 interface towards DUT2.
-| | ... | - ${dut2_node} - DUT2 node.
-| | ... | - ${dut2_to_tg} - DUT2 interface towards TG.
-| | ... | - ${dut2_to_dut1} - DUT2 interface towards DUT1.
-| | ... | - ${tg_to_dut1_mac}
-| | ... | - ${tg_to_dut2_mac}
-| | ... | - ${dut1_to_tg_mac}
-| | ... | - ${dut1_to_dut2_mac}
-| | ... | - ${dut2_to_tg_mac}
-| | ... | - ${dut2_to_dut1_mac}
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Given Configure path in 3-node circular topology \| ${nodes['TG']} \
-| | ... | \| ${nodes['DUT1']} \| ${nodes['DUT2']} \| ${nodes['TG']} \|
-| |
-| | [Arguments] | ${tg_node} | ${dut1_node} | ${dut2_node} | ${tg2_node}
-| | Should Be Equal | ${tg_node} | ${tg2_node}
-| | Append Nodes | ${tg_node} | ${dut1_node} | ${dut2_node} | ${tg_node}
-| | Compute Path
-| | ${tg_to_dut1} | ${tmp}= | Next Interface
-| | ${dut1_to_tg} | ${tmp}= | Next Interface
-| | ${dut1_to_dut2} | ${tmp}= | Next Interface
-| | ${dut2_to_dut1} | ${tmp}= | Next Interface
-| | ${dut2_to_tg} | ${tmp}= | Next Interface
-| | ${tg_to_dut2} | ${tmp}= | Next Interface
-| | ${tg_to_dut1_mac}= | Get interface mac | ${tg_node} | ${tg_to_dut1}
-| | ${tg_to_dut2_mac}= | Get interface mac | ${tg_node} | ${tg_to_dut2}
-| | ${dut1_to_tg_mac}= | Get interface mac | ${dut1_node} | ${dut1_to_tg}
-| | ${dut1_to_dut2_mac}= | Get interface mac | ${dut1_node} | ${dut1_to_dut2}
-| | ${dut2_to_tg_mac}= | Get interface mac | ${dut2_node} | ${dut2_to_tg}
-| | ${dut2_to_dut1_mac}= | Get interface mac | ${dut2_node} | ${dut2_to_dut1}
-| | Set Test Variable | ${tg_to_dut1}
-| | Set Test Variable | ${dut1_to_tg}
-| | Set Test Variable | ${tg_to_dut2}
-| | Set Test Variable | ${dut2_to_tg}
-| | Set Test Variable | ${dut1_to_dut2}
-| | Set Test Variable | ${dut2_to_dut1}
-| | Set Test Variable | ${tg_to_dut1_mac}
-| | Set Test Variable | ${tg_to_dut2_mac}
-| | Set Test Variable | ${dut1_to_tg_mac}
-| | Set Test Variable | ${dut1_to_dut2_mac}
-| | Set Test Variable | ${dut2_to_tg_mac}
-| | Set Test Variable | ${dut2_to_dut1_mac}
-| | Set Test Variable | ${tg_node}
-| | Set Test Variable | ${dut1_node}
-| | Set Test Variable | ${dut2_node}
-
-| Set interfaces in 3-node circular topology up
-| | [Documentation]
-| | ... | Set UP state on interfaces in 3-node path on nodes and \
-| | ... | wait until all interfaces are ready.
-| |
-| | ... | *Arguments:*
-| | ... | - No arguments.
-| |
-| | ... | *Return:*
-| | ... | - No value returned.
-| |
-| | ... | _NOTE:_ This KW uses test variables sets in
-| | ... | "Configure path in 3-node circular topology" KW.
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Given Configure path in 3-node circular topology \| ${nodes['TG']} \
-| | ... | \| ${nodes['DUT1']} \| ${nodes['TG']} \|
-| | ... | \| And Set interfaces in 3-node circular topology up \|
-| |
-| | Set Interface State | ${tg_node} | ${tg_to_dut1} | up
-| | Set Interface State | ${tg_node} | ${tg_to_dut2} | up
-| | Set Interface State | ${dut1_node} | ${dut1_to_tg} | up
-| | Set Interface State | ${dut1_node} | ${dut1_to_dut2} | up
-| | Set Interface State | ${dut2_node} | ${dut2_to_tg} | up
-| | Set Interface State | ${dut2_node} | ${dut2_to_dut1} | up
-| | Vpp Node Interfaces Ready Wait | ${dut1_node}
-| | Vpp Node Interfaces Ready Wait | ${dut2_node}
-
-| Configure path in double-link 3-node circular topology
-| | [Documentation]
-| | ... | Compute path for testing on three given nodes in circular \
-| | ... | topology with double link and set corresponding \
-| | ... | test case variables.
-| |
-| | ... | *Arguments:*
-| | ... | - ${tg_node} - TG node. Type: dictionary
-| | ... | - ${dut1_node} - DUT1 node. Type: dictionary
-| | ... | - ${dut2_node} - DUT2 node. Type: dictionary
-| | ... | - ${tg2_node} - Node where the path ends. Must be the same as TG node
-| | ... | parameter in circular topology. Type: dictionary
-| |
-| | ... | *Return:*
-| | ... | - No value returned.
-| | ... |
-| | ... | _NOTE:_ This KW sets following test case variables:
-| | ... | - ${tg_node} - TG node.
-| | ... | - ${tg_to_dut1_if1} - TG interface towards DUT1 interface 1.
-| | ... | - ${tg_to_dut1_if2} - TG interface towards DUT1 interface 2.
-| | ... | - ${tg_to_dut1_mac_if1} - TG towards DUT1 MAC address interface 1.
-| | ... | - ${tg_to_dut1_mac_if2} - TG towards DUT1 MAC address interface 2.
-| | ... | - ${tg_to_dut2_if1} - TG interface towards DUT2 interface 1.
-| | ... | - ${tg_to_dut2_if2} - TG interface towards DUT2 interface 2.
-| | ... | - ${tg_to_dut2_mac_if1} - TG towards DUT2 MAC address interface 1.
-| | ... | - ${tg_to_dut2_mac_if2} - TG towards DUT2 MAC address interface 2.
-| | ... | - ${dut1_node} - DUT1 node.
-| | ... | - ${dut1_to_tg_if1} - DUT1 interface towards TG interface 1.
-| | ... | - ${dut1_to_tg_if2} - DUT1 interface towards TG interface 2.
-| | ... | - ${dut1_to_tg_mac_if1} - DUT1 towards TG MAC address interface 1.
-| | ... | - ${dut1_to_tg_mac_if2} - DUT1 towards TG MAC address interface 2.
-| | ... | - ${dut1_to_dut2_if1} - DUT1 interface towards DUT2 interface 1.
-| | ... | - ${dut1_to_dut2_if2} - DUT1 interface towards DUT2 interface 2.
-| | ... | - ${dut1_to_dut2_mac_if1} - DUT1 towards DUT2 MAC address interface 1.
-| | ... | - ${dut1_to_dut2_mac_if2} - DUT1 towards DUT2 MAC address interface 2.
-| | ... | - ${dut2_node} - DUT2 node.
-| | ... | - ${dut2_to_tg_if1} - DUT2 interface towards TG interface 1.
-| | ... | - ${dut2_to_tg_if2} - DUT2 interface towards TG interface 2.
-| | ... | - ${dut2_to_tg_mac_if1} - DUT2 towards TG MAC address interface 1.
-| | ... | - ${dut2_to_tg_mac_if2} - DUT2 towards TG MAC address interface 2.
-| | ... | - ${dut2_to_dut1_if1} - DUT2 interface towards DUT1 interface 1.
-| | ... | - ${dut2_to_dut1_if2} - DUT2 interface towards DUT1 interface 2.
-| | ... | - ${dut2_to_dut1_mac_if1} - DUT2 towards DUT1 MAC address interface 1.
-| | ... | - ${dut2_to_dut1_mac_if2} - DUT2 towards DUT1 MAC address interface 2.
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Configure path in double-link 3-node circular topology \| ${nodes['TG']} \
-| | ... | \| ${nodes['DUT1']} \| ${nodes['DUT2']} \| ${nodes['TG']} \|
-| |
-| | [Arguments] | ${tg_node} | ${dut1_node} | ${dut2_node} | ${tg2_node}
-| | Should Be Equal | ${tg_node} | ${tg2_node}
-| | # Compute path TG - DUT1 with two links in between
-| | Append Nodes | ${tg_node} | ${dut1_node} | ${tg_node}
-| | Compute Path | always_same_link=${FALSE}
-| | ${tg_to_dut1_if1} | ${tmp}= | First Interface
-| | ${tg_to_dut1_if2} | ${tmp}= | Last Interface
-| | ${dut1_to_tg_if1} | ${tmp}= | First Ingress Interface
-| | ${dut1_to_tg_if2} | ${tmp}= | Last Egress Interface
-| | # Compute path TG - DUT2 with two links in between
-| | Clear Path
-| | Append Nodes | ${tg_node} | ${dut2_node} | ${tg_node}
-| | Compute Path | always_same_link=${FALSE}
-| | ${tg_to_dut2_if1} | ${tmp}= | First Interface
-| | ${tg_to_dut2_if2} | ${tmp}= | Last Interface
-| | ${dut2_to_tg_if1} | ${tmp}= | First Ingress Interface
-| | ${dut2_to_tg_if2} | ${tmp}= | Last Egress Interface
-| | # Compute path DUT1 - DUT2 with one link in between
-| | Clear Path
-| | Append Nodes | ${dut1_node} | ${dut2_node} | ${dut1_node}
-| | Compute Path | always_same_link=${FALSE}
-| | ${dut1_to_dut2_if1} | ${tmp}= | First Interface
-| | ${dut1_to_dut2_if2} | ${tmp}= | Last Interface
-| | ${dut2_to_dut1_if1} | ${tmp}= | First Ingress Interface
-| | ${dut2_to_dut1_if2} | ${tmp}= | Last Egress Interface
-| | # Set test variables
-| | Set Test Variable | ${tg_to_dut1_if1}
-| | Set Test Variable | ${tg_to_dut1_if2}
-| | Set Test Variable | ${tg_to_dut2_if1}
-| | Set Test Variable | ${tg_to_dut2_if2}
-| | Set Test Variable | ${dut1_to_tg_if1}
-| | Set Test Variable | ${dut1_to_tg_if2}
-| | Set Test Variable | ${dut2_to_tg_if1}
-| | Set Test Variable | ${dut2_to_tg_if2}
-| | Set Test Variable | ${dut1_to_dut2_if1}
-| | Set Test Variable | ${dut1_to_dut2_if2}
-| | Set Test Variable | ${dut2_to_dut1_if1}
-| | Set Test Variable | ${dut2_to_dut1_if2}
-| | Set Test Variable | ${tg_node}
-| | Set Test Variable | ${dut1_node}
-| | Set Test Variable | ${dut2_node}
-| | # Set Mac Addresses
-| | ${tg_to_dut1_if1_mac}= | Get interface mac | ${tg_node} | ${tg_to_dut1_if1}
-| | ${tg_to_dut1_if2_mac}= | Get interface mac | ${tg_node} | ${tg_to_dut1_if2}
-| | ${tg_to_dut2_if1_mac}= | Get interface mac | ${tg_node} | ${tg_to_dut2_if1}
-| | ${tg_to_dut2_if2_mac}= | Get interface mac | ${tg_node} | ${tg_to_dut2_if2}
-| | ${dut1_to_tg_if1_mac}= | Get interface mac | ${dut1_node}
-| | ... | ${dut1_to_tg_if1}
-| | ${dut1_to_tg_if2_mac}= | Get interface mac | ${dut1_node}
-| | ... | ${dut1_to_tg_if2}
-| | ${dut1_to_dut2_if1_mac}= | Get interface mac | ${dut1_node}
-| | ... | ${dut1_to_dut2_if1}
-| | ${dut1_to_dut2_if2_mac}= | Get interface mac | ${dut1_node}
-| | ... | ${dut1_to_dut2_if2}
-| | ${dut2_to_tg_if1_mac}= | Get interface mac | ${dut2_node}
-| | ... | ${dut2_to_tg_if1}
-| | ${dut2_to_tg_if2_mac}= | Get interface mac | ${dut2_node}
-| | ... | ${dut2_to_tg_if2}
-| | ${dut2_to_dut1_if1_mac}= | Get interface mac | ${dut2_node}
-| | ... | ${dut2_to_dut1_if1}
-| | ${dut2_to_dut1_if2_mac}= | Get interface mac | ${dut2_node}
-| | ... | ${dut2_to_dut1_if2}
-| | Set Test Variable | ${tg_to_dut1_if1_mac}
-| | Set Test Variable | ${tg_to_dut1_if2_mac}
-| | Set Test Variable | ${tg_to_dut2_if1_mac}
-| | Set Test Variable | ${tg_to_dut2_if2_mac}
-| | Set Test Variable | ${dut1_to_tg_if1_mac}
-| | Set Test Variable | ${dut1_to_tg_if2_mac}
-| | Set Test Variable | ${dut1_to_dut2_if1_mac}
-| | Set Test Variable | ${dut1_to_dut2_if2_mac}
-| | Set Test Variable | ${dut2_to_tg_if1_mac}
-| | Set Test Variable | ${dut2_to_tg_if2_mac}
-| | Set Test Variable | ${dut2_to_dut1_if1_mac}
-| | Set Test Variable | ${dut2_to_dut1_if2_mac}
-
-| Set interfaces in double-link 3-node circular topology up
-| | [Documentation]
-| | ... | Set UP state on interfaces in 3-node double link path \
-| | ... | wait until all interfaces are ready.
-| |
-| | ... | *Arguments:*
-| | ... | - No arguments.
-| |
-| | ... | *Return:*
-| | ... | - No value returned.
-| |
-| | ... | _NOTE:_ This KW uses test variables sets in
-| | ... | "Configure path in double-link 3-node circular topology" KW.
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Configure path in double-link 3-node circular topology \| ${nodes['TG']} \
-| | ... | \| ${nodes['DUT1']} \| ${nodes['TG']} \|
-| | ... | \| Interfaces in Double-Link 3-node testing are UP \|
-| |
-| | Set Interface State | ${tg_node} | ${tg_to_dut1_if1} | up
-| | Set Interface State | ${tg_node} | ${tg_to_dut1_if2} | up
-| | Set Interface State | ${tg_node} | ${tg_to_dut2_if1} | up
-| | Set Interface State | ${tg_node} | ${tg_to_dut2_if2} | up
-| | Set Interface State | ${dut1_node} | ${dut1_to_tg_if1} | up
-| | Set Interface State | ${dut1_node} | ${dut1_to_tg_if2} | up
-| | Set Interface State | ${dut2_node} | ${dut2_to_tg_if1} | up
-| | Set Interface State | ${dut2_node} | ${dut2_to_tg_if2} | up
-| | Set Interface State | ${dut1_node} | ${dut1_to_dut2_if1} | up
-| | Set Interface State | ${dut1_node} | ${dut1_to_dut2_if2} | up
-| | Set Interface State | ${dut2_node} | ${dut2_to_dut1_if1} | up
-| | Set Interface State | ${dut2_node} | ${dut2_to_dut1_if2} | up
-| | Vpp Node Interfaces Ready Wait | ${dut1_node}
-| | Vpp Node Interfaces Ready Wait | ${dut2_node}
-
-| Configure interfaces in path up
-| | [Documentation]
-| | ... | Set UP state on interfaces in 2-node or 3-node path on nodes and \
-| | ... | wait until all interfaces are ready.
-| |
-| | ... | *Arguments:*
-| | ... | - No arguments.
-| |
-| | ... | *Return:*
-| | ... | - No value returned.
-| |
-| | ... | _NOTE:_ This KW uses test variables sets in\
-| | ... | "Configure path in 2-node circular topology" or\
-| | ... | "Configure path in 3-node circular topology" KW.
-| |
-| | ... | *Example:*
-| |
-| | ... | \| Configure interfaces in path up \|
-| |
-| | ${dut2_status} | ${value}= | Run Keyword And Ignore Error
-| | ... | Variable Should Exist | ${dut2}
-| |
-| | Run Keyword If | '${dut2_status}' == 'PASS'
-| | ... | Set interfaces in 3-node circular topology up
-| | ... | ELSE
-| | ... | Set interfaces in 2-node circular topology up