From a7d1efd62f6ef628ad6ab4e8184464a4a155b0a9 Mon Sep 17 00:00:00 2001 From: Matthew G McGovern Date: Tue, 29 Oct 2024 15:24:38 -0700 Subject: [PATCH] Fix version and installation criteria in testpmd --- microsoft/testsuites/dpdk/common.py | 2 +- microsoft/testsuites/dpdk/dpdktestpmd.py | 2 +- microsoft/testsuites/dpdk/dpdkutil.py | 10 ++++++---- microsoft/testsuites/dpdk/rdmacore.py | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/microsoft/testsuites/dpdk/common.py b/microsoft/testsuites/dpdk/common.py index 7fd4857fb2..94a6846ee9 100644 --- a/microsoft/testsuites/dpdk/common.py +++ b/microsoft/testsuites/dpdk/common.py @@ -241,7 +241,7 @@ def _should_install( # At the moment, we use create() to force re-initialization. # If we ever fix things so that we use .get, # we will need this check. So add it now.q - or (required_arch != self._arch) + or (self._arch and required_arch != self._arch) or ( required_version is not None and required_version > self.get_installed_version() diff --git a/microsoft/testsuites/dpdk/dpdktestpmd.py b/microsoft/testsuites/dpdk/dpdktestpmd.py index 8da9b68167..42cffa6ccc 100644 --- a/microsoft/testsuites/dpdk/dpdktestpmd.py +++ b/microsoft/testsuites/dpdk/dpdktestpmd.py @@ -944,7 +944,7 @@ def _install(self) -> bool: ): raise SkippedException("MANA DPDK test is not supported on this OS") - self.installer.do_installation() + self.installer.do_installation(required_arch=self._build_arch) self._dpdk_version_info = self.installer.get_installed_version() self._load_drivers_for_dpdk() self.find_testpmd_binary(check_path=self._expected_install_path) diff --git a/microsoft/testsuites/dpdk/dpdkutil.py b/microsoft/testsuites/dpdk/dpdkutil.py index 8135927f74..f530e934a2 100644 --- a/microsoft/testsuites/dpdk/dpdkutil.py +++ b/microsoft/testsuites/dpdk/dpdkutil.py @@ -62,7 +62,7 @@ ) from microsoft.testsuites.dpdk.dpdktestpmd import PACKAGE_MANAGER_SOURCE, DpdkTestpmd from microsoft.testsuites.dpdk.rdmacore import ( - RDMA_CORE_I386_DEFAULT_SOURCE, + RDMA_CORE_I386_MANA_DEFAULT_SOURCE, RDMA_CORE_MANA_DEFAULT_SOURCE, RDMA_CORE_PACKAGE_DEPENDENCIES, RDMA_CORE_SOURCE_DEPENDENCIES, @@ -138,8 +138,7 @@ def get_rdma_core_installer( # set rdma-core installer type. if not build_arch: build_arch = node.tools[Lscpu].get_architecture() - if build_arch == CpuArchitecture.I386 and not rdma_source: - rdma_source = RDMA_CORE_I386_DEFAULT_SOURCE + if rdma_source: if is_url_for_git_repo(rdma_source): # else, if we have a user provided rdma-core source, use it @@ -153,7 +152,10 @@ def get_rdma_core_installer( ) # handle MANA special case, build a default rdma-core with mana provider elif not rdma_source and node.nics.is_mana_device_present(): - downloader = TarDownloader(node, RDMA_CORE_MANA_DEFAULT_SOURCE) + if build_arch == CpuArchitecture.I386: + downloader = TarDownloader(node, RDMA_CORE_I386_MANA_DEFAULT_SOURCE) + else: + downloader = TarDownloader(node, RDMA_CORE_MANA_DEFAULT_SOURCE) else: # no rdma_source and not mana, just use the package manager return RdmaCorePackageManagerInstall( diff --git a/microsoft/testsuites/dpdk/rdmacore.py b/microsoft/testsuites/dpdk/rdmacore.py index 54635fc2ba..5c99ab1308 100644 --- a/microsoft/testsuites/dpdk/rdmacore.py +++ b/microsoft/testsuites/dpdk/rdmacore.py @@ -18,7 +18,7 @@ "https://github.com/linux-rdma/rdma-core/" "releases/download/v50.1/rdma-core-50.1.tar.gz" ) -RDMA_CORE_I386_DEFAULT_SOURCE = ( +RDMA_CORE_I386_MANA_DEFAULT_SOURCE = ( "https://github.com/linux-rdma/rdma-core/" "releases/download/v53.1/rdma-core-53.1.tar.gz" )