Performance suite: introduced suite variables 97/397/3
authorMiroslav Miklus <mmiklus@cisco.com>
Tue, 23 Feb 2016 21:02:06 +0000 (22:02 +0100)
committerStefan Kobza <skobza@cisco.com>
Thu, 25 Feb 2016 09:41:47 +0000 (09:41 +0000)
- perf suite variables
- T-REX setup fix

Change-Id: I608581e45d0e5f80e8f75c2a07c994bf0e0d0df3
Signed-off-by: Miroslav Miklus <mmiklus@cisco.com>
resources/libraries/python/TrafficGenerator.py
tests/suites/performance/short.robot

index 4b71b59..e63b8bc 100644 (file)
@@ -34,8 +34,8 @@ class TrafficGenerator(object):
     def initialize_traffic_generator(node, interface1, interface2):
         """TG initialization
         :param node: Traffic generator node
     def initialize_traffic_generator(node, interface1, interface2):
         """TG initialization
         :param node: Traffic generator node
-        :param interface1: PCI address of first interface
-        :param interface2: PCI address of second interface
+        :param interface1: interface name of first interface
+        :param interface2: interface name of second interface
         :type node: dict
         :type interface1: str
         :type interface2: str
         :type node: dict
         :type interface1: str
         :type interface2: str
@@ -54,12 +54,17 @@ class TrafficGenerator(object):
                 "sh -c 'cd {0}/scripts/ && "
                 "sudo ./trex-cfg'"\
                 .format(trex_path))
                 "sh -c 'cd {0}/scripts/ && "
                 "sudo ./trex-cfg'"\
                 .format(trex_path))
+            if int(ret) != 0:
+                logger.error('trex-cfg failed: {0}'.format(stdout + stderr))
+                raise RuntimeError('trex-cfg failed')
 
 
-            (ret, stdout, stderr) = ssh.exec_command(
+            (ret, _, _) = ssh.exec_command(
                 "sh -c 'cd {0}/scripts/ && "
                 "sudo nohup ./t-rex-64 -i -c 4 --iom 0 > /dev/null 2>&1 &'"
                 "> /dev/null"\
                 .format(trex_path))
                 "sh -c 'cd {0}/scripts/ && "
                 "sudo nohup ./t-rex-64 -i -c 4 --iom 0 > /dev/null 2>&1 &'"
                 "> /dev/null"\
                 .format(trex_path))
+            if int(ret) != 0:
+                raise RuntimeError('t-rex-64 startup failed')
 
     @staticmethod
     def teardown_traffic_generator(node):
 
     @staticmethod
     def teardown_traffic_generator(node):
index 598cd40..e4309ae 100644 (file)
 | Library | resources.libraries.python.TrafficGenerator
 | Library | resources.libraries.python.NodePath
 | Force Tags | 3_NODE_SINGLE_LINK_TOPO | PERFTEST | HW_ENV
 | 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 Setup | Setup all DUTs before test
-| Suite Setup | Initialize traffic generator | ${nodes['TG']}
-| ... | ${nodes['TG']['interfaces']['port3']['pci_address']}
-| ... | ${nodes['TG']['interfaces']['port5']['pci_address']}
-| Suite Teardown | Teardown traffic generator | ${nodes['TG']}
 | Test Teardown  | Run Keyword If Test Failed | Show statistics on all DUTs
 
 *** Test Cases ***
 | Test Teardown  | Run Keyword If Test Failed | Show statistics on all DUTs
 
 *** Test Cases ***
 
 *** Keywords ***
 
 
 *** Keywords ***
 
-
-| L2 xconnect initialized in a 3-node topology
-| | Interfaces on all DUTs are in "up" state
-| | L2 setup xconnect on DUTs
-
-| IPv4 forwarding initialized in a 3-node topology
-| | Setup nodes for IPv4 testing
-
-| L2 bridge domain initialized in a 3-node circular topology
+| 3-node Topology Variables Setup
 | | Append Nodes | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']}
 | | ...          | ${nodes['TG']}
 | | Compute Path
 | | Append Nodes | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']}
 | | ...          | ${nodes['TG']}
 | | Compute Path
-| | ${src_if} | ${tg}= | Next Interface
+| | ${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
 | | ${dut1_if1} | ${dut1}= | Next Interface
 | | ${dut1_if2} | ${dut1}= | Next Interface
 | | ${dut2_if1} | ${dut2}= | Next Interface
 | | ${dut2_if2} | ${dut2}= | Next Interface
-| | ${dst_if} | ${tg}= | 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}
+
+| 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
 | | 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
-| | Append Nodes | ${nodes['TG']} | ${nodes['DUT1']} | ${nodes['DUT2']}
-| | ...          | ${nodes['TG']}
-| | Compute Path
-| | ${src_if} | ${tg}= | Next Interface
-| | ${dut1_if1} | ${dut1}= | Next Interface
-| | ${dut1_if2} | ${dut1}= | Next Interface
-| | ${dut2_if1} | ${dut2}= | Next Interface
-| | ${dut2_if2} | ${dut2}= | Next Interface
-| | ${dst_if} | ${tg}= | Next Interface
 | | 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
 | | 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
 
 | Show statistics on all DUTs
 | | Sleep | 10 | Waiting for statistics to be collected
 
 | Show statistics on all DUTs
 | | Sleep | 10 | Waiting for statistics to be collected
-| | Vpp show stats | ${nodes['DUT1']}
-| | Vpp show stats | ${nodes['DUT2']}
+| | Vpp show stats | ${dut1}
+| | Vpp show stats | ${dut2}