T-REX: startup config generation
[csit.git] / tests / suites / performance / short.robot
index 5c04d5e..4273b9b 100644 (file)
 *** Settings ***
 | Resource | resources/libraries/robot/default.robot
 | Resource | resources/libraries/robot/interfaces.robot
-| Library | resources/libraries/python/VatExecutor.py
-| Library | resources/libraries/python/TrafficGenerator.py
-| Force Tags | topo-3node
+| Resource | resources/libraries/robot/bridge_domain.robot
+| Resource | resources/libraries/robot/ipv4.robot
+| Resource | resources/libraries/robot/l2_xconnect.robot
+| Resource | resources/libraries/robot/counters.robot
+| Library | resources.libraries.python.TrafficGenerator
+| Library | resources.libraries.python.NodePath
+| Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV
+| Suite Setup | 3-node Performance Suite Setup
+| Suite Teardown | 3-node Performance Suite Teardown
 | Test Setup | Setup all DUTs before test
+| Test Teardown  | Run Keyword If Test Failed | Show statistics on all DUTs
 
 *** Test Cases ***
-| VPP passes traffic through L2 cross connect
-| | Given L2 xconnect initialized in topology
-| | Then Traffic should pass with no loss | 10 | 10 | 512
+| 2core VPP passes 64B frames through L2 cross connect at 3.5mpps in 3-node topology
+| | Given L2 xconnect initialized in a 3-node circular topology
+| | Then Traffic should pass with no loss | 10 | 3.5mpps | 64 | 3-node-xconnect
+
+| 2core VPP passes 1518B frames through L2 cross connect at 10gbps in 3-node topology
+| | Given L2 xconnect initialized in a 3-node circular topology
+| | Then Traffic should pass with no loss | 10 | 10gbps | 1518 | 3-node-xconnect
+
+| 2core VPP passes 9000B frames through L2 cross connect at 10gbps in 3-node topology
+| | Given L2 xconnect initialized in a 3-node circular topology
+| | Then Traffic should pass with no loss | 10 | 10gbps | 9000 | 3-node-xconnect
+
+| 2core VPP passes 64B frames through bridge domain at 3.5mpps in 3-node topology
+| | Given L2 bridge domain initialized in a 3-node circular topology
+| | Then Traffic should pass with no loss | 10 | 3.5mpps | 64 | 3-node-bridge
+
+| 2core VPP passes 1518B frames through bridge domain at 10gbps in 3-node topology
+| | Given L2 bridge domain initialized in a 3-node circular topology
+| | Then Traffic should pass with no loss | 10 | 10gbps | 1518 | 3-node-bridge
+
+| 2core VPP passes 9000B frames through bridge domain at 10gbps in 3-node topology
+| | Given L2 bridge domain initialized in a 3-node circular topology
+| | Then Traffic should pass with no loss | 10 | 10gbps | 9000 | 3-node-bridge
+
+#| VPP passes 64B frames through IPv4 forwarding at 3.5mpps in 3-node topology
+#| | Given IPv4 forwarding initialized in a 3-node topology
+#| | Then Traffic should pass with no loss | 10 | 3.5mpps | 64 | 3-node-IPv4
+
+#| VPP passes 1518B frames through IPv4 forwarding at 100% in 3-node topology
+#| | Given IPv4 forwarding initialized in a 3-node topology
+#| | Then Traffic should pass with no loss | 10 | 100 | 1518 | 3-node-IPv4
+
+#| VPP passes 9000B frames through IPv4 forwarding at 100% in 3-node topology
+#| | Given IPv4 forwarding initialized in a 3-node topology
+#| | Then Traffic should pass with no loss | 10 | 100 | 9000 | 3-node-IPv4
+
 
 *** Keywords ***
-| L2 xconnect initialized in topology
-| | Setup L2 xconnect | ${nodes['DUT1']} | port1 | port2
-| | Setup L2 xconnect | ${nodes['DUT2']} | port1 | port2
 
+| 3-node Topology Variables Setup
+| | Append Nodes | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']}
+| | ...          | ${nodes['TG']}
+| | Compute Path
+| | ${tg_if1} | ${tg}= | Next Interface
+| | ${dut1_if1} | ${dut1}= | Next Interface
+| | ${dut1_if2} | ${dut1}= | Next Interface
+| | ${dut2_if1} | ${dut2}= | Next Interface
+| | ${dut2_if2} | ${dut2}= | Next Interface
+| | ${tg_if2} | ${tg}= | Next Interface
+| | Set Suite Variable | ${tg}
+| | Set Suite Variable | ${tg_if1}
+| | Set Suite Variable | ${tg_if2}
+| | Set Suite Variable | ${dut1}
+| | Set Suite Variable | ${dut1_if1}
+| | Set Suite Variable | ${dut1_if2}
+| | Set Suite Variable | ${dut2}
+| | Set Suite Variable | ${dut2_if1}
+| | Set Suite Variable | ${dut2_if2}
+
+| 3-node Performance Suite Setup
+| | 3-node Topology Variables Setup
+| | Initialize traffic generator | ${tg} | ${tg_if1} | ${tg_if2} | L2
 
-| Setup L2 xconnect | [Arguments] | ${node} | ${src_port} | ${dst_port}
-| | Execute script | l2xconnect.vat | ${node}
-| | Script should have passed
+| 3-node Performance Suite Teardown
+| | Teardown traffic generator | ${tg}
 
+| IPv4 forwarding initialized in a 3-node topology
+| | Setup nodes for IPv4 testing
+
+| L2 bridge domain initialized in a 3-node circular topology
+| | Vpp l2bd forwarding setup | ${dut1} | ${dut1_if1} | ${dut1_if2}
+| | Vpp l2bd forwarding setup | ${dut2} | ${dut2_if1} | ${dut2_if2}
+| | Sleep | 10 | Wait for interfaces initialization
+
+| L2 xconnect initialized in a 3-node circular topology
+| | L2 setup xconnect on DUT | ${dut1} | ${dut1_if1} | ${dut1_if2}
+| | L2 setup xconnect on DUT | ${dut2} | ${dut2_if1} | ${dut2_if2}
+| | Sleep | 10 | Wait for interfaces initialization
 
 | Traffic should pass with no loss
-| | [Arguments] | ${duration} | ${rate} | ${framesize}
-| | Send traffic on | ${nodes['TG']} | port1 | port2 | ${duration}
-| | ...             | ${rate} | ${framesize}
+| | [Arguments] | ${duration} | ${rate} | ${framesize} | ${topology_type}
+| | Send traffic on | ${nodes} | ${duration}
+| | ...             | ${rate} | ${framesize} | ${topology_type}
 | | No traffic loss occured
+
+| Show statistics on all DUTs
+| | Sleep | 10 | Waiting for statistics to be collected
+| | Vpp show stats | ${dut1}
+| | Vpp show stats | ${dut2}