From 3dc8a53fc419e0491d1bd53e23473aed019fedc1 Mon Sep 17 00:00:00 2001 From: Vratko Polak Date: Tue, 28 May 2024 10:18:08 +0200 Subject: 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 --- resources/libraries/python/HoststackUtil.py | 21 +-------------------- resources/libraries/robot/hoststack/hoststack.robot | 19 ++++++++++++++++++- 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] -- cgit 1.2.3-korg