aboutsummaryrefslogtreecommitdiffstats
path: root/resources
diff options
context:
space:
mode:
authorVratko Polak <vrpolak@cisco.com>2024-05-28 10:18:08 +0200
committerVratko Polak <vrpolak@cisco.com>2024-05-31 13:58:37 +0000
commitd4356a060fd27780082afbe3d033f9ba3fcc7bf3 (patch)
tree90b89ffbc167f0350ba22ea88e46451952fda927 /resources
parent94d0b46416a4bcf0fd7894c3350309ab5fbed3d0 (diff)
feat(hoststack): Add stat pre/post actions
While adding runtime actions to hoststack tests is not easy, adding pre and post actions for stats is easy. The main hoststack measurement is treated as the stats trial, the same way as the 10 measurements in MRR tests are. + Remove the previous partial info via "show" CLI commands. - As in other VPP tests, stat telemetry is not exported. Change-Id: Ib567aa810418568520d4d543c6d50431e85a3269 Signed-off-by: Vratko Polak <vrpolak@cisco.com> (cherry picked from commit 3dc8a53fc419e0491d1bd53e23473aed019fedc1)
Diffstat (limited to 'resources')
-rw-r--r--resources/libraries/python/HoststackUtil.py21
-rw-r--r--resources/libraries/robot/hoststack/hoststack.robot19
2 files changed, 19 insertions, 21 deletions
diff --git a/resources/libraries/python/HoststackUtil.py b/resources/libraries/python/HoststackUtil.py
index 399395d41a..4ac73ff924 100644
--- a/resources/libraries/python/HoststackUtil.py
+++ b/resources/libraries/python/HoststackUtil.py
@@ -1,4 +1,4 @@
-# Copyright (c) 2023 Cisco and/or its affiliates.
+# Copyright (c) 2024 Cisco and/or its affiliates.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
@@ -413,10 +413,6 @@ class HoststackUtil():
f"bits/sec, pkt-drop-rate {nsim_attr[u'packets_per_drop']} " \
f"pkts/drop\n"
- test_results += \
- f"\n{role} VPP 'show errors' on host {node[u'host']}:\n" \
- f"{PapiSocketExecutor.run_cli_cmd(node, u'show error')}\n"
-
if u"error" in program_stderr.lower():
test_results += f"ERROR DETECTED:\n{program_stderr}"
return (True, test_results)
@@ -469,18 +465,3 @@ class HoststackUtil():
:rtype: bool
"""
return server_defer_fail and client_defer_fail
-
- @staticmethod
- def log_vpp_hoststack_data(node):
- """Retrieve and log VPP HostStack data.
-
- :param node: DUT node.
- :type node: dict
- :raises RuntimeError: If node subtype is not a DUT or startup failed.
- """
-
- if node[u"type"] != u"DUT":
- raise RuntimeError(u"Node type is not a DUT!")
-
- PapiSocketExecutor.run_cli_cmd(node, u"show error")
- PapiSocketExecutor.run_cli_cmd(node, u"show interface")
diff --git a/resources/libraries/robot/hoststack/hoststack.robot b/resources/libraries/robot/hoststack/hoststack.robot
index 20c071dc2d..0b82ff20b7 100644
--- a/resources/libraries/robot/hoststack/hoststack.robot
+++ b/resources/libraries/robot/hoststack/hoststack.robot
@@ -505,6 +505,9 @@
| | ${numa}= | Get interfaces numa node | ${dut2} | ${dut2_if1}
| | ${core_list}= | Cpu list per node str | ${dut2} | ${numa}
| | ... | skip_cnt=${skip_cnt} | cpu_cnt=${vpp_echo_server_attr}[cpu_cnt]
+| | FOR | ${action} | IN | @{stat_pre_trial}
+| | | Run Keyword | Additional Statistics Action For ${action}
+| | END
| | ${server_pid}= | Run hoststack test program on DUT
| | ... | ${dut2} | ${dut2_if1} | ${dut2_if1_ip4_addr} | ${dut2_if1_ip4_prefix}
| | ... | ${vpp_echo_server_attr}[namespace] | ${core_list}
@@ -528,6 +531,9 @@
| | ${server_defer_fail} | ${server_output}=
| | ... | Analyze hoststack test program output | ${dut2} | Server
| | ... | ${vpp_nsim_attr} | ${vpp_echo_server}
+| | FOR | ${action} | IN | @{stat_post_trial}
+| | | Run Keyword | Additional Statistics Action For ${action}
+| | END
| | Set test message | ${server_output} | append=True
| | Run Keyword And Return | Hoststack Test Program Defer Fail
| | ... | ${server_defer_fail} | ${client_defer_fail}
@@ -549,6 +555,9 @@
| | ${numa}= | Get interfaces numa node | ${dut2} | ${dut2_if1}
| | ${core_list}= | Cpu list per node str | ${dut2} | ${numa}
| | ... | skip_cnt=${skip_cnt} | cpu_cnt=${iperf3_server_attr}[cpu_cnt]
+| | FOR | ${action} | IN | @{stat_pre_trial}
+| | | Run Keyword | Additional Statistics Action For ${action}
+| | END
| | ${server_pid}= | Run hoststack test program on DUT
| | ... | ${dut2} | ${dut2_if1} | ${dut2_if1_ip4_addr} | ${dut2_if1_ip4_prefix}
| | ... | ${iperf3_server_attr}[namespace] | ${core_list}
@@ -563,6 +572,9 @@
| | ... | ${iperf3_client_attr}[cfg_vpp_feature] | ${iperf3_client}
| | When Hoststack Test Program Finished | ${dut1} | ${client_pid}
| | ... | ${iperf3_client} | ${dut2} | ${iperf3_server}
+| | FOR | ${action} | IN | @{stat_post_trial}
+| | | Run Keyword | Additional Statistics Action For ${action}
+| | END
| | ${client_defer_fail} | ${client_output}=
| | ... | Analyze hoststack test program output | ${dut1} | Client
| | ... | ${vpp_nsim_attr} | ${iperf3_client}
@@ -638,11 +650,16 @@
| |
| | ${dut_ip_addrs_str} | Evaluate | ','.join(${dut_ip_addrs})
| | ${ad_ip_addrs_str} | Evaluate | ','.join(${ab_ip_addrs})
+| | FOR | ${action} | IN | @{stat_pre_trial}
+| | | Run Keyword | Additional Statistics Action For ${action}
+| | END
| | ${output}= | Run ab | ${tg} | ${dut_ip_addrs_str} | ${ad_ip_addrs_str}
| | ... | ${tls_tcp} | ${ciphers} | ${files} | ${mode} | ${r_total} | ${c_total}
| | ... | ${listen_port}
+| | FOR | ${action} | IN | @{stat_post_trial}
+| | | Run Keyword | Additional Statistics Action For ${action}
+| | END
| | Set test message | ${output}
-| | Log VPP Hoststack data | ${dut1}
| Configure VPP startup configuration for NGINX
| | [Documentation]