Currently, a test case is decorated to signify whether to use Scapy or
TREX. This change allows test suites that do not use a traffic generator
to avoid the overhead of initializing either one.

Signed-off-by: Andrew Bailey <[email protected]>
---
 dts/framework/config/test_run.py             |  3 +++
 dts/framework/test_suite.py                  |  4 +++
 dts/framework/testbed_model/linux_session.py | 27 +-------------------
 dts/framework/testbed_model/os_session.py    |  4 ---
 dts/tests/TestSuite_cryptodev_throughput.py  | 16 ++++++------
 5 files changed, 16 insertions(+), 38 deletions(-)

diff --git a/dts/framework/config/test_run.py b/dts/framework/config/test_run.py
index 6c292a3675..39f2c7cdf6 100644
--- a/dts/framework/config/test_run.py
+++ b/dts/framework/config/test_run.py
@@ -481,6 +481,8 @@ class TestRunConfiguration(FrozenModel):
     perf: bool
     #: Whether to run functional tests.
     func: bool
+    #: Whether to run cryptography tests.
+    crypto: bool
     #: Whether to run the testing with virtual functions instead of physical 
functions
     use_virtual_functions: bool
     #: Whether to skip smoke tests.
@@ -522,6 +524,7 @@ def filter_tests(
                     for tt in t.test_cases
                     if (tt.test_type is TestCaseType.FUNCTIONAL and self.func)
                     or (tt.test_type is TestCaseType.PERFORMANCE and self.perf)
+                    or (tt.test_type is TestCaseType.CRYPTO and self.crypto)
                 ),
             )
             for t in test_suites
diff --git a/dts/framework/test_suite.py b/dts/framework/test_suite.py
index 856dae0a85..e86096cefe 100644
--- a/dts/framework/test_suite.py
+++ b/dts/framework/test_suite.py
@@ -281,6 +281,8 @@ class TestCaseType(Enum):
     FUNCTIONAL = auto()
     #:
     PERFORMANCE = auto()
+    #:
+    CRYPTO = auto()
 
 
 class TestCase(TestProtocol, Protocol[TestSuiteMethodType]):
@@ -333,6 +335,8 @@ def _decorator(func: TestSuiteMethodType) -> type[TestCase]:
 func_test: Callable = TestCase.make_decorator(TestCaseType.FUNCTIONAL)
 #: The decorator for performance test cases.
 perf_test: Callable = TestCase.make_decorator(TestCaseType.PERFORMANCE)
+#: The decorator for cryptography test cases.
+crypto_test: Callable = TestCase.make_decorator(TestCaseType.CRYPTO)
 
 
 @dataclass
diff --git a/dts/framework/testbed_model/linux_session.py 
b/dts/framework/testbed_model/linux_session.py
index fb6081ab37..8d678c5b5d 100644
--- a/dts/framework/testbed_model/linux_session.py
+++ b/dts/framework/testbed_model/linux_session.py
@@ -194,8 +194,7 @@ def bind_ports_to_driver(self, ports: list[Port], 
driver_name: str) -> None:
             verify=True,
         )
 
-        if self._lshw_net_info:
-            del self._lshw_net_info
+        del self._lshw_net_info
 
     def bring_up_link(self, ports: Iterable[Port]) -> None:
         """Overrides :meth:`~.os_session.OSSession.bring_up_link`."""
@@ -225,30 +224,6 @@ def devbind_script_path(self) -> PurePath:
         """
         raise InternalError("Accessed devbind script path before setup.")
 
-    def load_vfio(self, pf_port: Port) -> None:
-        """Overrides :meth:'~os_session.OSSession,load_vfio`."""
-        cmd_result = self.send_command(f"lspci -nn -s {pf_port.pci}")
-        device = re.search(r":([0-9a-fA-F]{4})\]", cmd_result.stdout)
-        if device and device.group(1) in ["37c8", "0435", "19e2"]:
-            self.send_command(
-                "modprobe -r vfio_iommu_type1; modprobe -r vfio_pci",
-                privileged=True,
-            )
-            self.send_command(
-                "modprobe -r vfio_virqfd; modprobe -r vfio",
-                privileged=True,
-            )
-            self.send_command(
-                "modprobe vfio-pci disable_denylist=1 enable_sriov=1", 
privileged=True
-            )
-            self.send_command(
-                "echo 1 | tee 
/sys/module/vfio/parameters/enable_unsafe_noiommu_mode",
-                privileged=True,
-            )
-        else:
-            self.send_command("modprobe vfio-pci")
-        self.refresh_lshw()
-
     def create_crypto_vfs(self, pf_port: list[Port]) -> None:
         """Overrides :meth:`~os_session.OSSession.create_crypto_vfs`.
 
diff --git a/dts/framework/testbed_model/os_session.py 
b/dts/framework/testbed_model/os_session.py
index 4a4fc1f34a..2eeeea6967 100644
--- a/dts/framework/testbed_model/os_session.py
+++ b/dts/framework/testbed_model/os_session.py
@@ -615,10 +615,6 @@ def configure_port_mtu(self, mtu: int, port: Port) -> None:
             port: Port to set `mtu` on.
         """
 
-    @abstractmethod
-    def load_vfio(self, pf_port: Port) -> None:
-        """Load the vfio module according to the device type of the given 
port."""
-
     @abstractmethod
     def create_crypto_vfs(self, pf_ports: list[Port]) -> None:
         """Creatues virtual functions for each port in 'pf_ports'.
diff --git a/dts/tests/TestSuite_cryptodev_throughput.py 
b/dts/tests/TestSuite_cryptodev_throughput.py
index b75b41e532..f18a051299 100644
--- a/dts/tests/TestSuite_cryptodev_throughput.py
+++ b/dts/tests/TestSuite_cryptodev_throughput.py
@@ -29,7 +29,7 @@
     CryptodevResults,
 )
 from api.test import verify
-from framework.test_suite import BaseConfig, TestSuite, func_test
+from framework.test_suite import BaseConfig, TestSuite, crypto_test
 
 
 class Config(BaseConfig):
@@ -140,7 +140,7 @@ def _verify_throughput(
             result_list.append(result_dict)
         return result_list
 
-    @func_test
+    @crypto_test
     def qat_cipher_then_auth_aes_cbc_encrypt(self) -> None:
         """Test throughput on crypto_qat device type with aes-cbc and 
sha2-256-hmac algorithms.
 
@@ -177,7 +177,7 @@ def qat_cipher_then_auth_aes_cbc_encrypt(self) -> None:
                 \nMOps was {result["mops delta"]} below baseline""",
             )
 
-    @func_test
+    @crypto_test
     def qat_aead_aes_gcm_encrypt(self) -> None:
         """Test throughput on a crypto_qat device type with aes-gcm algorithm.
 
@@ -211,7 +211,7 @@ def qat_aead_aes_gcm_encrypt(self) -> None:
                 f"Gbps and MOps were {result["gbps delta"]} below baseline",
             )
 
-    @func_test
+    @crypto_test
     def qat_cipher_aes_docsisbpi_decrypt(self) -> None:
         """Test throughput on a crypto_qat devtype with aes-docsibpi algorithm.
 
@@ -243,7 +243,7 @@ def qat_cipher_aes_docsisbpi_decrypt(self) -> None:
                 f"Gbps and MOps were {result["gbps delta"]} below baseline",
             )
 
-    @func_test
+    @crypto_test
     def qat_cipher_aes_docsisbpi_encrypt(self) -> None:
         """Test throughput on a crypto_qat device type with aes-docsibpi 
algorithm.
 
@@ -275,7 +275,7 @@ def qat_cipher_aes_docsisbpi_encrypt(self) -> None:
                 f"Gbps and MOps were {result["gbps delta"]} below baseline",
             )
 
-    @func_test
+    @crypto_test
     def qat_cipher_then_auth_kasumi_f8_encrypt(self) -> None:
         """Test throughput on a crypto_qat device type with kasumi-f8 and 
kasumi-f9 algorithms.
 
@@ -311,7 +311,7 @@ def qat_cipher_then_auth_kasumi_f8_encrypt(self) -> None:
                 f"Gbps and MOps were {result["gbps delta"]} below baseline",
             )
 
-    @func_test
+    @crypto_test
     def qat_cipher_then_auth_snow3g_uea2_encrpyt(self) -> None:
         """Test throughput on a crypto_qat device type with snow3g-uea2 and 
snow3g-uia2 algorithms.
 
@@ -348,7 +348,7 @@ def qat_cipher_then_auth_snow3g_uea2_encrpyt(self) -> None:
                 f"Gbps and MOps were {result["gbps delta"]} below baseline",
             )
 
-    @func_test
+    @crypto_test
     def qat_cipher_then_auth_zuc_eea3_encrypt(self) -> None:
         """Test throughput on a crypto_qat device type with zuc-eea3 and 
zuc-eia3 algorithms.
 
-- 
2.50.1

Reply via email to