[PATCH v3 2/7] dts: simplify build options config
Luca Vizzarro
luca.vizzarro at arm.com
Wed Jan 15 15:18:04 CET 2025
From: Nicholas Pratte <npratte at iol.unh.edu>
The build options configuration contained redundant fields that were not
in use, and there is no future scope for their use.
Bugzilla ID: 1360
Signed-off-by: Nicholas Pratte <npratte at iol.unh.edu>
Signed-off-by: Luca Vizzarro <luca.vizzarro at arm.com>
Reviewed-by: Paul Szczepanek <paul.szczepanek at arm.com>
---
dts/conf.yaml | 3 --
dts/framework/config/__init__.py | 43 --------------------
dts/framework/test_result.py | 2 +-
dts/framework/testbed_model/cpu.py | 20 ++++++++-
dts/framework/testbed_model/node.py | 2 +-
dts/framework/testbed_model/os_session.py | 4 +-
dts/framework/testbed_model/posix_session.py | 2 +-
dts/framework/testbed_model/sut_node.py | 6 ++-
8 files changed, 28 insertions(+), 54 deletions(-)
diff --git a/dts/conf.yaml b/dts/conf.yaml
index 80aba0d63a..4b6965b3d7 100644
--- a/dts/conf.yaml
+++ b/dts/conf.yaml
@@ -14,9 +14,6 @@ test_runs:
# precompiled_build_dir: Commented out because `build_options` is defined.
build_options:
- arch: x86_64
- os: linux
- cpu: native
# the combination of the following two makes CC="ccache gcc"
compiler: gcc
compiler_wrapper: ccache # Optional.
diff --git a/dts/framework/config/__init__.py b/dts/framework/config/__init__.py
index 1127c6474a..3fa8f4fa8f 100644
--- a/dts/framework/config/__init__.py
+++ b/dts/framework/config/__init__.py
@@ -63,22 +63,6 @@ class FrozenModel(BaseModel):
model_config = ConfigDict(frozen=True, extra="forbid")
- at unique
-class Architecture(StrEnum):
- r"""The supported architectures of :class:`~framework.testbed_model.node.Node`\s."""
-
- #:
- i686 = auto()
- #:
- x86_64 = auto()
- #:
- x86_32 = auto()
- #:
- arm64 = auto()
- #:
- ppc64le = auto()
-
-
@unique
class OS(StrEnum):
r"""The supported operating systems of :class:`~framework.testbed_model.node.Node`\s."""
@@ -91,22 +75,6 @@ class OS(StrEnum):
windows = auto()
- at unique
-class CPUType(StrEnum):
- r"""The supported CPUs of :class:`~framework.testbed_model.node.Node`\s."""
-
- #:
- native = auto()
- #:
- armv8a = auto()
- #:
- dpaa2 = auto()
- #:
- thunderx = auto()
- #:
- xgene1 = auto()
-
-
@unique
class Compiler(StrEnum):
r"""The supported compilers of :class:`~framework.testbed_model.node.Node`\s."""
@@ -351,23 +319,12 @@ class DPDKBuildOptionsConfiguration(FrozenModel):
The build options used for building DPDK.
"""
- #: The target architecture to build for.
- arch: Architecture
- #: The target OS to build for.
- os: OS
- #: The target CPU to build for.
- cpu: CPUType
#: The compiler executable to use.
compiler: Compiler
#: This string will be put in front of the compiler when executing the build. Useful for adding
#: wrapper commands, such as ``ccache``.
compiler_wrapper: str = ""
- @cached_property
- def name(self) -> str:
- """The name of the compiler."""
- return f"{self.arch}-{self.os}-{self.cpu}-{self.compiler}"
-
class DPDKUncompiledBuildConfiguration(BaseDPDKBuildConfiguration):
"""DPDK uncompiled build configuration."""
diff --git a/dts/framework/test_result.py b/dts/framework/test_result.py
index ba7c1c9804..381f72b974 100644
--- a/dts/framework/test_result.py
+++ b/dts/framework/test_result.py
@@ -337,7 +337,7 @@ class DTSResult(BaseResult):
"""Stores environment information and test results from a DTS run.
* Test run level information, such as testbed, the test suite list and
- DPDK build configuration (compiler, target OS and cpu),
+ DPDK build compiler configuration,
* Test suite and test case results,
* All errors that are caught and recorded during DTS execution.
diff --git a/dts/framework/testbed_model/cpu.py b/dts/framework/testbed_model/cpu.py
index 46bf13960d..d19fa5d597 100644
--- a/dts/framework/testbed_model/cpu.py
+++ b/dts/framework/testbed_model/cpu.py
@@ -1,5 +1,6 @@
# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2023 PANTHEON.tech s.r.o.
+# Copyright(c) 2025 Arm Limited
"""CPU core representation and filtering.
@@ -21,8 +22,25 @@
from abc import ABC, abstractmethod
from collections.abc import Iterable, ValuesView
from dataclasses import dataclass
+from enum import auto, unique
-from framework.utils import expand_range
+from framework.utils import StrEnum, expand_range
+
+
+ at unique
+class Architecture(StrEnum):
+ r"""The supported architectures of :class:`~framework.testbed_model.node.Node`\s."""
+
+ #:
+ i686 = auto()
+ #:
+ x86_64 = auto()
+ #:
+ x86_32 = auto()
+ #:
+ aarch64 = auto()
+ #:
+ ppc64le = auto()
@dataclass(slots=True, frozen=True)
diff --git a/dts/framework/testbed_model/node.py b/dts/framework/testbed_model/node.py
index c56872aa99..08328ee482 100644
--- a/dts/framework/testbed_model/node.py
+++ b/dts/framework/testbed_model/node.py
@@ -17,7 +17,6 @@
from framework.config import (
OS,
- Architecture,
DPDKBuildConfiguration,
NodeConfiguration,
TestRunConfiguration,
@@ -26,6 +25,7 @@
from framework.logger import DTSLogger, get_dts_logger
from .cpu import (
+ Architecture,
LogicalCore,
LogicalCoreCount,
LogicalCoreList,
diff --git a/dts/framework/testbed_model/os_session.py b/dts/framework/testbed_model/os_session.py
index 30d781c355..fcda9b3de1 100644
--- a/dts/framework/testbed_model/os_session.py
+++ b/dts/framework/testbed_model/os_session.py
@@ -28,7 +28,7 @@
from dataclasses import dataclass
from pathlib import Path, PurePath, PurePosixPath
-from framework.config import Architecture, NodeConfiguration
+from framework.config import NodeConfiguration
from framework.logger import DTSLogger
from framework.remote_session import (
InteractiveRemoteSession,
@@ -40,7 +40,7 @@
from framework.settings import SETTINGS
from framework.utils import MesonArgs, TarCompressionFormat
-from .cpu import LogicalCore
+from .cpu import Architecture, LogicalCore
from .port import Port
diff --git a/dts/framework/testbed_model/posix_session.py b/dts/framework/testbed_model/posix_session.py
index 220618cacc..981600e24c 100644
--- a/dts/framework/testbed_model/posix_session.py
+++ b/dts/framework/testbed_model/posix_session.py
@@ -15,7 +15,6 @@
from collections.abc import Iterable
from pathlib import Path, PurePath, PurePosixPath
-from framework.config import Architecture
from framework.exception import DPDKBuildError, RemoteCommandExecutionError
from framework.settings import SETTINGS
from framework.utils import (
@@ -26,6 +25,7 @@
extract_tarball,
)
+from .cpu import Architecture
from .os_session import OSSession, OSSessionInfo
diff --git a/dts/framework/testbed_model/sut_node.py b/dts/framework/testbed_model/sut_node.py
index a9dc0a474a..11d4b22089 100644
--- a/dts/framework/testbed_model/sut_node.py
+++ b/dts/framework/testbed_model/sut_node.py
@@ -400,7 +400,7 @@ def _configure_dpdk_build(self, dpdk_build_config: DPDKBuildOptionsConfiguration
dpdk_build_config: A DPDK build configuration to test.
"""
self._env_vars = {}
- self._env_vars.update(self.main_session.get_dpdk_build_env_vars(dpdk_build_config.arch))
+ self._env_vars.update(self.main_session.get_dpdk_build_env_vars(self.arch))
if compiler_wrapper := dpdk_build_config.compiler_wrapper:
self._env_vars["CC"] = f"'{compiler_wrapper} {dpdk_build_config.compiler.name}'"
else:
@@ -410,8 +410,10 @@ def _configure_dpdk_build(self, dpdk_build_config: DPDKBuildOptionsConfiguration
dpdk_build_config.compiler.name
)
+ build_dir_name = f"{self.arch}-{self.config.os}-{dpdk_build_config.compiler}"
+
self._remote_dpdk_build_dir = self.main_session.join_remote_path(
- self._remote_dpdk_tree_path, dpdk_build_config.name
+ self._remote_dpdk_tree_path, build_dir_name
)
def _build_dpdk(self) -> None:
--
2.43.0
More information about the dev
mailing list