From: Dean Marx <dmarx@iol.unh.edu>
To: probb@iol.unh.edu, npratte@iol.unh.edu, luca.vizzarro@arm.com,
yoan.picchi@foss.arm.com, Honnappa.Nagarahalli@arm.com,
paul.szczepanek@arm.com
Cc: dev@dpdk.org, Dean Marx <dmarx@iol.unh.edu>
Subject: [PATCH v2] dts: add SUT cleanup to framework
Date: Thu, 30 Jan 2025 17:13:24 -0500 [thread overview]
Message-ID: <20250130221324.75711-1-dmarx@iol.unh.edu> (raw)
In-Reply-To: <20241209205902.18321-2-dmarx@iol.unh.edu>
Add method cleanup_sut to framework that removes a
DPDK source from a SUT node at the conclusion of a testrun.
This will only run when the DPDK source is being copied
from the DTS engine node during the testrun
(when remote=false in the conf.yaml).
Signed-off-by: Dean Marx <dmarx@iol.unh.edu>
---
dts/framework/runner.py | 2 +-
dts/framework/testbed_model/sut_node.py | 21 ++++++++++++++++++---
2 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/dts/framework/runner.py b/dts/framework/runner.py
index 9f9789cf49..367034e038 100644
--- a/dts/framework/runner.py
+++ b/dts/framework/runner.py
@@ -336,7 +336,7 @@ def _run_test_run(
finally:
try:
self._logger.set_stage(DtsStage.test_run_teardown)
- sut_node.tear_down_test_run()
+ sut_node.tear_down_test_run(test_run_config.dpdk_config.dpdk_location)
tg_node.tear_down_test_run()
test_run_result.update_teardown(Result.PASS)
except Exception as e:
diff --git a/dts/framework/testbed_model/sut_node.py b/dts/framework/testbed_model/sut_node.py
index 483733cede..c73500b146 100644
--- a/dts/framework/testbed_model/sut_node.py
+++ b/dts/framework/testbed_model/sut_node.py
@@ -188,6 +188,19 @@ def path_to_devbind_script(self) -> PurePath | str:
)
return self._path_to_devbind_script
+ def cleanup_sut(self, dpdk_build_location, remote_tree: str | PurePath | None) -> None:
+ """Removes the DPDK tree and/or build directory/tarball depending on the configuration."""
+ match dpdk_build_location:
+ case LocalDPDKTreeLocation(dpdk_tree=dpdk_tree):
+ tree_path = self.main_session.join_remote_path(self._remote_tmp_dir, dpdk_tree.name)
+ self.main_session.remove_remote_dir(tree_path)
+ case LocalDPDKTarballLocation(tarball=tarball):
+ self.main_session.remove_remote_dir(str(remote_tree))
+ tarball_path = self.main_session.join_remote_path(
+ self._remote_tmp_dir, tarball.name
+ )
+ self.main_session.remove_remote_file(tarball_path)
+
def get_dpdk_build_info(self) -> DPDKBuildInfo:
"""Get additional DPDK build information.
@@ -216,11 +229,11 @@ def set_up_test_run(
self.virtual_devices.append(VirtualDevice(vdev))
self._set_up_dpdk(dpdk_build_config)
- def tear_down_test_run(self) -> None:
+ def tear_down_test_run(self, dpdk_build_location=None) -> None:
"""Extend the test run teardown with virtual device teardown and DPDK teardown."""
super().tear_down_test_run()
self.virtual_devices = []
- self._tear_down_dpdk()
+ self._tear_down_dpdk(dpdk_build_location)
def _set_up_dpdk(
self,
@@ -256,14 +269,16 @@ def _set_up_dpdk(
self.bind_ports_to_driver()
- def _tear_down_dpdk(self) -> None:
+ def _tear_down_dpdk(self, dpdk_build_location) -> None:
"""Reset DPDK variables and bind port driver to the OS driver."""
self._env_vars = {}
+ remote_tree = self.__remote_dpdk_tree_path
self.__remote_dpdk_tree_path = None
self._remote_dpdk_build_dir = None
self._dpdk_version = None
self.compiler_version = None
self.bind_ports_to_driver(for_dpdk=False)
+ self.cleanup_sut(dpdk_build_location, remote_tree)
def _set_remote_dpdk_tree_path(self, dpdk_tree: PurePath):
"""Set the path to the remote DPDK source tree based on the provided DPDK location.
--
2.48.1
prev parent reply other threads:[~2025-01-30 22:13 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-09 20:59 [RFC PATCH 0/1] " Dean Marx
2024-12-09 20:59 ` [RFC PATCH 1/1] " Dean Marx
2025-01-30 5:31 ` Patrick Robb
2025-01-30 6:30 ` Patrick Robb
2025-01-30 21:32 ` Dean Marx
2025-01-30 22:13 ` Dean Marx [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250130221324.75711-1-dmarx@iol.unh.edu \
--to=dmarx@iol.unh.edu \
--cc=Honnappa.Nagarahalli@arm.com \
--cc=dev@dpdk.org \
--cc=luca.vizzarro@arm.com \
--cc=npratte@iol.unh.edu \
--cc=paul.szczepanek@arm.com \
--cc=probb@iol.unh.edu \
--cc=yoan.picchi@foss.arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).