From b255549d4fee3a161c521a1a2bd8be3a0767189e Mon Sep 17 00:00:00 2001 From: Stefan Kobza Date: Thu, 18 Feb 2016 14:24:57 +0100 Subject: [PATCH] Add hw/vm tags, add single link tag. 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 --- bootstrap.sh | 9 +++++++-- docs/tag_documentation.rst | 10 ++++++++++ tests/suites/bridge_domain/test.robot | 2 +- tests/suites/ipv4/ipv4_untagged.robot | 7 +++++++ tests/suites/ipv6/ipv6_untagged.robot | 8 ++++++++ tests/suites/l2_xconnect/l2_xconnect_untagged.robot | 3 +-- tests/suites/performance/short.robot | 2 +- 7 files changed, 35 insertions(+), 6 deletions(-) diff --git a/bootstrap.sh b/bootstrap.sh index c20bf47b22..455168c17a 100755 --- a/bootstrap.sh +++ b/bootstrap.sh @@ -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/ diff --git a/docs/tag_documentation.rst b/docs/tag_documentation.rst index 188f3b1d29..6b3272c3fc 100644 --- a/docs/tag_documentation.rst +++ b/docs/tag_documentation.rst @@ -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. diff --git a/tests/suites/bridge_domain/test.robot b/tests/suites/bridge_domain/test.robot index 0f8198545f..071e375ff4 100644 --- a/tests/suites/bridge_domain/test.robot +++ b/tests/suites/bridge_domain/test.robot @@ -14,12 +14,12 @@ | 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 *** diff --git a/tests/suites/ipv4/ipv4_untagged.robot b/tests/suites/ipv4/ipv4_untagged.robot index ccf15514df..4f1904e3ba 100644 --- a/tests/suites/ipv4/ipv4_untagged.robot +++ b/tests/suites/ipv4/ipv4_untagged.robot @@ -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 @@ -77,9 +82,11 @@ | | 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']} diff --git a/tests/suites/ipv6/ipv6_untagged.robot b/tests/suites/ipv6/ipv6_untagged.robot index e804addaf9..c9304a23c5 100644 --- a/tests/suites/ipv6/ipv6_untagged.robot +++ b/tests/suites/ipv6/ipv6_untagged.robot @@ -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} @@ -27,26 +28,33 @@ *** 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} diff --git a/tests/suites/l2_xconnect/l2_xconnect_untagged.robot b/tests/suites/l2_xconnect/l2_xconnect_untagged.robot index f6c1cbdd72..f811612051 100644 --- a/tests/suites/l2_xconnect/l2_xconnect_untagged.robot +++ b/tests/suites/l2_xconnect/l2_xconnect_untagged.robot @@ -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 diff --git a/tests/suites/performance/short.robot b/tests/suites/performance/short.robot index ff6c726dba..eea9c176e1 100644 --- a/tests/suites/performance/short.robot +++ b/tests/suites/performance/short.robot @@ -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']} -- 2.16.6