Capture VPP stats for Long and Short tests 95/1195/6
authorMiroslav Miklus <mmiklus@cisco.com>
Thu, 19 May 2016 11:59:30 +0000 (13:59 +0200)
committerMiroslav Miklus <mmiklus@cisco.com>
Mon, 23 May 2016 13:42:57 +0000 (13:42 +0000)
JIRA: CSIT-71
- remove warmup for short runs
- clear and collect stats for short run
- run short test with no failure for long test with NDR/PDR rate

Change-Id: I1b8879c3b891165072822207d0781687d8159336
Signed-off-by: Miroslav Miklus <mmiklus@cisco.com>
resources/libraries/python/VppCounters.py
resources/libraries/robot/counters.robot
resources/libraries/robot/default.robot
resources/libraries/robot/performance.robot
resources/templates/vat/clear_errors.vat [new file with mode: 0644]
resources/templates/vat/clear_hardware.vat [new file with mode: 0644]

index 4bb7d63..af3ea47 100644 (file)
@@ -108,6 +108,28 @@ class VppCounters(object):
         vat.execute_script('clear_interface.vat', node)
         vat.script_should_have_passed()
 
+    @staticmethod
+    def vpp_clear_hardware_counters(node):
+        """Clear interface hardware counters on VPP node.
+
+        :param node: Node to clear hardware counters on.
+        :type node: dict
+        """
+        vat = VatExecutor()
+        vat.execute_script('clear_hardware.vat', node)
+        vat.script_should_have_passed()
+
+    @staticmethod
+    def vpp_clear_errors_counters(node):
+        """Clear errors counters on VPP node.
+
+        :param node: Node to clear errors counters on.
+        :type node: dict
+        """
+        vat = VatExecutor()
+        vat.execute_script('clear_errors.vat', node)
+        vat.script_should_have_passed()
+
     def vpp_dump_stats_table(self, node):
         """Dump stats table on VPP node.
 
index 0cb18c1..1fa4ca4 100644 (file)
 | | ${ipv4_counter}= | Vpp get ipv4 interface counter | ${node} | ${interface}
 | | Should Be Equal | ${ipv4_counter} | ${value}
 
+| Show statistics on all DUTs
+| | [Documentation] | Show VPP statistics on all DUTs after the test failed
+| | Sleep | 10 | Waiting for statistics to be collected
+| | ${duts}= | Get Matches | ${nodes} | DUT*
+| | :FOR | ${dut} | IN | @{duts}
+| | | Vpp show stats | ${nodes['${dut}']}
+
 | Vpp show stats
 | | [Documentation] | Show [error, hardware, interface] stats
 | | [Arguments] | ${node}
 | | Vpp Show Hardware Detail | ${node}
 | | Vpp Show Runtime | ${node}
 
-| Clear runtime statistics on all DUTs
-| | [Documentation] | Clear VPP runtime statistics on all DUTs
+| Clear all counters on all DUTs
+| | [Documentation] | Clear runtime, interface, hardware and error counters
+| | ... | on all DUTs with VPP instance
+| | Clear runtime counters on all DUTs
+| | Clear interface counters on all DUTs
+| | Clear hardware counters on all DUTs
+| | Clear errors counters on all DUTs
+
+| Clear runtime counters on all DUTs
+| | [Documentation] | Clear VPP runtime counters on all DUTs
 | | ${duts}= | Get Matches | ${nodes} | DUT*
 | | :FOR | ${dut} | IN | @{duts}
 | | | Vpp clear runtime | ${nodes['${dut}']}
 
-| Show runtime statistics on all DUTs
-| | [Documentation] | Show VPP runtime statistics on all DUTs
+| Clear interface counters on all DUTs
+| | [Documentation] | Clear VPP interface counters on all DUTs
+| | ${duts}= | Get Matches | ${nodes} | DUT*
+| | :FOR | ${dut} | IN | @{duts}
+| | | Vpp clear interface counters | ${nodes['${dut}']}
+
+| Clear hardware counters on all DUTs
+| | [Documentation] | Clear VPP hardware counters on all DUTs
+| | ${duts}= | Get Matches | ${nodes} | DUT*
+| | :FOR | ${dut} | IN | @{duts}
+| | | Vpp clear hardware counters | ${nodes['${dut}']}
+
+| Clear errors counters on all DUTs
+| | [Documentation] | Clear VPP errors counters on all DUTs
+| | ${duts}= | Get Matches | ${nodes} | DUT*
+| | :FOR | ${dut} | IN | @{duts}
+| | | Vpp clear errors counters | ${nodes['${dut}']}
+
+| Show runtime counters on all DUTs
+| | [Documentation] | Show VPP runtime counters on all DUTs
 | | ${duts}= | Get Matches | ${nodes} | DUT*
 | | :FOR | ${dut} | IN | @{duts}
 | | | Vpp show runtime | ${nodes['${dut}']}
index 51cafdf..8e03e62 100644 (file)
 | | [Documentation] | Prepare all TGs before traffic scripts execution
 | | All TGs Set Interface Default Driver | ${nodes}
 
-| Show statistics on all DUTs
-| | [Documentation] | Show VPP statistics on all DUTs after the test failed
-| | Sleep | 10 | Waiting for statistics to be collected
-| | ${duts}= | Get Matches | ${nodes} | DUT*
-| | :FOR | ${dut} | IN | @{duts}
-| | | Vpp show stats | ${nodes['${dut}']}
-
 | Setup '${m}' worker threads and rss '${n}' without HTT on all DUTs
 | | [Documentation] |  Setup M worker threads without HTT and rss N in startup
 | | ...             |  configuration of VPP on all DUTs
index 8201ae4..6c06288 100644 (file)
 | | Linear Search | ${start_rate} | ${topology_type}
 | | ${rate_per_stream}= | Verify Search Result
 | | Display result of NDR search | ${rate_per_stream} | ${framesize} | 2
-| | Clear and show runtime stats with running traffic | ${duration}
-| | ...  | ${rate_per_stream}pps | ${framesize} | ${topology_type}
+| | Traffic should pass with no loss | ${duration} | ${rate_per_stream}pps
+| | ...                              | ${framesize} | ${topology_type}
+| | ...                              | fail_on_loss=${False}
 
 | Find NDR using binary search and pps
 | | [Documentation] | Find throughput by using RFC2544 binary search
 | | Binary Search | ${binary_min} | ${binary_max} | ${topology_type}
 | | ${rate_per_stream}= | Verify Search Result
 | | Display result of NDR search | ${rate_per_stream} | ${framesize} | 2
-| | Clear and show runtime stats with running traffic | ${duration}
-| | ...  | ${rate_per_stream}pps | ${framesize} | ${topology_type}
+| | Traffic should pass with no loss | ${duration} | ${rate_per_stream}pps
+| | ...                              | ${framesize} | ${topology_type}
+| | ...                              | fail_on_loss=${False}
 
 | Find NDR using combined search and pps
 | | [Documentation] | Find throughput by using RFC2544 combined search
 | | Combined Search | ${start_rate} | ${topology_type}
 | | ${rate_per_stream}= | Verify Search Result
 | | Display result of NDR search | ${rate_per_stream} | ${framesize} | 2
-| | Clear and show runtime stats with running traffic | ${duration}
-| | ...  | ${rate_per_stream}pps | ${framesize} | ${topology_type}
+| | Traffic should pass with no loss | ${duration} | ${rate_per_stream}pps
+| | ...                              | ${framesize} | ${topology_type}
+| | ...                              | fail_on_loss=${False}
 
 | Display result of NDR search
 | | [Documentation] | Display result of NDR search in packet per seconds (total
 
 | Traffic should pass with no loss
 | | [Arguments] | ${duration} | ${rate} | ${framesize} | ${topology_type}
-| | Clear and show runtime stats with running traffic | ${duration}
+| | ...         | ${fail_on_loss}=${True}
+| | Clear and show runtime counters with running traffic | ${duration}
 | | ...  | ${rate} | ${framesize} | ${topology_type}
+| | Clear all counters on all DUTs
 | | Send traffic on tg | ${duration} | ${rate} | ${framesize}
-| | ...                | ${topology_type}
-| | No traffic loss occurred
+| | ...                | ${topology_type} | warmup_time=0
+| | Show statistics on all DUTs
+| | Run Keyword If | ${fail_on_loss} | No traffic loss occurred
 
-| Clear and show runtime stats with running traffic
+| Clear and show runtime counters with running traffic
 | | [Arguments] | ${duration} | ${rate} | ${framesize} | ${topology_type}
 | | Send traffic on tg | -1 | ${rate} | ${framesize}
 | | ...                | ${topology_type} | warmup_time=0 | async_call=True
-| | Clear runtime statistics on all DUTs
+| | Clear runtime counters on all DUTs
 | | Sleep | ${duration}
-| | Show runtime statistics on all DUTs
+| | Show runtime counters on all DUTs
 | | Stop traffic on tg
diff --git a/resources/templates/vat/clear_errors.vat b/resources/templates/vat/clear_errors.vat
new file mode 100644 (file)
index 0000000..b6dd4c2
--- /dev/null
@@ -0,0 +1 @@
+exec clear errors
diff --git a/resources/templates/vat/clear_hardware.vat b/resources/templates/vat/clear_hardware.vat
new file mode 100644 (file)
index 0000000..2351151
--- /dev/null
@@ -0,0 +1 @@
+exec clear hardware