Add hw/vm tags, add single link tag. 49/349/5
authorStefan Kobza <skobza@cisco.com>
Thu, 18 Feb 2016 13:24:57 +0000 (14:24 +0100)
committerStefan Kobza <skobza@cisco.com>
Fri, 19 Feb 2016 16:15:08 +0000 (17:15 +0100)
Add HW_EVN and VM_ENV tags to specify limitations on where the given
test could be run. For tests that should be run only on bare metal,
author of the test should add tag HW_ENV to it.

Add 3_NODE_SINGLE_LINK_TOPO tag, to specify requirement on topology,
where only one link is required in between any two nodes in the
topology.

Change-Id: I38c9a9732cad608bb6a9e4a2c5f1997236cd48b9
Signed-off-by: Stefan Kobza <skobza@cisco.com>
bootstrap.sh
docs/tag_documentation.rst
tests/suites/bridge_domain/test.robot
tests/suites/ipv4/ipv4_untagged.robot
tests/suites/ipv6/ipv6_untagged.robot
tests/suites/l2_xconnect/l2_xconnect_untagged.robot
tests/suites/performance/short.robot

index c20bf47..455168c 100755 (executable)
@@ -32,5 +32,10 @@ virtualenv env
 echo pip install
 pip install -r requirements.txt
 
-PYTHONPATH=`pwd` pybot -L TRACE -v TOPOLOGY_PATH:topologies/available/virl.yaml --exclude PERFTEST tests || true
-
+PYTHONPATH=`pwd` pybot -L TRACE \
+    -v TOPOLOGY_PATH:topologies/available/virl.yaml \
+    --include vm_env \
+    --include 3_NODE_SINGLE_LINK_TOPO \
+    --exclude 3_node_double_link_topoNOT3_node_single_link_topo \
+    --exclude PERFTEST \
+    tests/
index 188f3b1..6b3272c 100644 (file)
@@ -23,8 +23,18 @@ Topology TAGs
     3 nodes connected in a circular topology with two links interconnecting
     the devices.
 
+3_NODE_SINGLE_LINK_TOPO
+    3 nodes connected in a circular topoloty with at least one link
+    interconnecting devices.
+
 Objective TAGs
 --------------
 
 Environment TAGs
 ----------------
+
+HW_ENV
+    DUTs and TGs are running on bare metal.
+
+VM_ENV
+    DUTs and TGs are running in virtual environment.
index 0f81985..071e375 100644 (file)
 | Resource | resources/libraries/robot/default.robot
 | Resource | resources/libraries/robot/interfaces.robot
 | Resource | resources/libraries/robot/bridge_domain.robot
+| Force Tags | HW_ENV | VM_ENV
 | Library | resources.libraries.python.topology.Topology
 | Library | resources.libraries.python.NodePath
 | Variables | resources/libraries/python/topology.py
 | Suite Setup | Setup all TGs before traffic script
 | Test Setup | Setup all DUTs before test
-| Force Tags | 3_NODE_DOUBLE_LINK_TOPO
 
 *** Test Cases ***
 
index ccf1551..4f1904e 100644 (file)
@@ -16,6 +16,7 @@
 | Library | resources.libraries.python.NodePath
 | Resource | resources/libraries/robot/default.robot
 | Resource | resources/libraries/robot/ipv4.robot
+| Force Tags | HW_ENV | VM_ENV
 | Suite Setup | Run Keywords | Setup all DUTs before test
 | ...         | AND          | Setup all TGs before traffic script
 | ...         | AND          | Update All Interface Data On All Nodes | ${nodes}
@@ -25,6 +26,7 @@
 *** Test Cases ***
 
 | VPP replies to ICMPv4 echo request
+| | [Tags] | 3_NODE_SINGLE_LINK_TOPO
 | | Append Nodes | ${nodes['TG']} | ${nodes['DUT1']}
 | | Compute Path
 | | ${src_port} | ${src_node}= | First Interface
@@ -41,6 +43,7 @@
 | | Node "${src_node}" interface "${src_port}" can route to node "${dst_node}" interface "${dst_port}" ${hops} hops away using IPv4
 
 | TG can route to DUT2 through DUT1
+| | [Tags] | 3_NODE_SINGLE_LINK_TOPO
 | | Append Nodes | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']}
 | | Compute Path
 | | ${src_port} | ${src_node}= | First Interface
@@ -49,6 +52,7 @@
 | | Node "${src_node}" interface "${src_port}" can route to node "${dst_node}" interface "${dst_port}" ${hops} hops away using IPv4
 
 | TG can route to DUT2 egress interface through DUT1
+| | [Tags] | 3_NODE_SINGLE_LINK_TOPO
 | | Append Nodes | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']}
 | | Compute Path
 | | ${src_port} | ${src_node}= | First Interface
@@ -57,6 +61,7 @@
 | | Node "${src_node}" interface "${src_port}" can route to node "${dst_node}" interface "${dst_port}" ${hops} hops away using IPv4
 
 | TG can route to TG through DUT1 and DUT2
+| | [Tags] | 3_NODE_SINGLE_LINK_TOPO
 | | Append Nodes | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']}
 | | Compute Path
 | | ${src_port} | ${src_node}= | First Interface
 | | Check ipv4 interface counter | ${node} | ${port} | ${exp_counter_val}
 
 | VPP can process ICMP echo request from min to max packet size with 1B increment
+| | [Tags] | 3_NODE_SINGLE_LINK_TOPO
 | | Ipv4 icmp echo sweep | ${nodes['TG']} | ${nodes['DUT1']}
 | | ...                  | ${nodes['TG']['interfaces']['port3']['name']}
 | | ...                  | ${nodes['DUT1']['interfaces']['port1']['name']}
 
 | VPP responds to ARP request
+| | [Tags] | 3_NODE_SINGLE_LINK_TOPO
 | | Send ARP request and validate response | ${nodes['TG']} | ${nodes['DUT1']}
index e804add..c9304a2 100644 (file)
@@ -19,6 +19,7 @@
 | Resource | resources/libraries/robot/counters.robot
 | Resource | resources/libraries/robot/default.robot
 | Variables | resources/libraries/python/IPv6NodesAddr.py | ${nodes}
+| Force Tags | HW_ENV | VM_ENV
 | Suite Setup | Run Keywords | Setup ipv6 to all dut in topology | ${nodes} | ${nodes_ipv6_addr}
 | ...         | AND          | Vpp nodes ra supress link layer | ${nodes}
 | ...         | AND          | Vpp nodes setup ipv6 routing | ${nodes} | ${nodes_ipv6_addr}
 
 *** Test Cases ***
 | VPP replies to ICMPv6 echo request
+| | [Tags] | 3_NODE_SINGLE_LINK_TOPO
 | | Ipv6 icmp echo | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes_ipv6_addr}
 
 | VPP can process ICMPv6 echo request from min to max packet size with 1B increment
+| | [Tags] | 3_NODE_SINGLE_LINK_TOPO
 | | Ipv6 icmp echo sweep | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes_ipv6_addr}
 
 | TG can route to first DUT egress interface
+| | [Tags] | 3_NODE_SINGLE_LINK_TOPO
 | | Ipv6 tg to dut1 egress | ${nodes['TG']} | ${nodes['DUT1']} |
 | | ...                    | ${nodes['DUT2']} | ${nodes_ipv6_addr}
 
 | TG can route to second DUT through first DUT
+| | [Tags] | 3_NODE_SINGLE_LINK_TOPO
 | | Ipv6 tg to dut2 via dut1 | ${nodes['TG']} | ${nodes['DUT1']}
 | | ...                      | ${nodes['DUT2']} | ${nodes_ipv6_addr}
 
 | TG can route to second DUT egress interface through first DUT
+| | [Tags] | 3_NODE_SINGLE_LINK_TOPO
 | | Ipv6 tg to dut2 egress via dut1 | ${nodes['TG']} | ${nodes['DUT1']}
 | | ...                             | ${nodes['DUT2']} | ${nodes_ipv6_addr}
 
 | TG can route to TG through first and second DUT
+| | [Tags] | 3_NODE_SINGLE_LINK_TOPO
 | | Ipv6 tg to tg routed | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']}
 | | ...                  | ${nodes_ipv6_addr}
 
 | VPP replies to IPv6 Neighbor Solicitation
+| | [Tags] | 3_NODE_SINGLE_LINK_TOPO
 | | Ipv6 neighbor solicitation | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes_ipv6_addr}
index f6c1cbd..f811612 100644 (file)
@@ -16,7 +16,7 @@
 | Resource | resources/libraries/robot/default.robot
 | Resource | resources/libraries/robot/l2_xconnect.robot
 | Library | resources.libraries.python.NodePath
-| Force Tags | 3_NODE_SINGLE_LINK_TOPO
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | HW_ENV | VM_ENV
 | Test Setup | Setup all DUTs before test
 | Suite Setup | Setup all TGs before traffic script
 
@@ -24,7 +24,6 @@
 *** Test Cases ***
 
 | Vpp forwards packets via L2 xconnect in circular topology
-| | [Tags] | 3_NODE_SINGLE_LINK_TOPO
 | | Append Nodes | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']} | ${nodes['TG']}
 | | Compute Path
 | | ${src_if} | ${tg}= | Next Interface
index ff6c726..eea9c17 100644 (file)
@@ -19,7 +19,7 @@
 | Resource | resources/libraries/robot/counters.robot
 | Library | resources.libraries.python.TrafficGenerator
 | Library | resources.libraries.python.NodePath
-| Force Tags | topo-3node | PERFTEST
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV
 | Test Setup | Setup all DUTs before test
 | Suite Setup | Initialize traffic generator | ${nodes['TG']}
 | ... | ${nodes['TG']['interfaces']['port3']['pci_address']}

©2016 FD.io a Linux Foundation Collaborative Project. All Rights Reserved.
Linux Foundation is a registered trademark of The Linux Foundation. Linux is a registered trademark of Linus Torvalds.
Please see our privacy policy and terms of use.