From: Andrew Bailey <[email protected]> Some of the DTS test suites require two link topologies in order to run, but not all truly require two links for proper testing. Rewrite the topology requirements on these test suites to reflect the actual requirements.
Signed-off-by: Andrew Bailey <[email protected]> Signed-off-by: Dean Marx <[email protected]> Reviewed-by: Patrick Robb <[email protected]> --- dts/framework/test_suite.py | 8 ++++---- dts/tests/TestSuite_blocklist.py | 3 ++- dts/tests/TestSuite_checksum_offload.py | 3 --- dts/tests/TestSuite_dual_vlan.py | 2 ++ dts/tests/TestSuite_port_control.py | 3 --- dts/tests/TestSuite_uni_pkt.py | 3 --- dts/tests/TestSuite_vlan.py | 2 +- 7 files changed, 9 insertions(+), 15 deletions(-) diff --git a/dts/framework/test_suite.py b/dts/framework/test_suite.py index e86096cefe..69ce26040a 100644 --- a/dts/framework/test_suite.py +++ b/dts/framework/test_suite.py @@ -23,7 +23,7 @@ from ipaddress import IPv4Interface, IPv6Interface, ip_interface from pkgutil import iter_modules from types import ModuleType -from typing import TYPE_CHECKING, ClassVar, Protocol, TypeVar, Union, cast +from typing import TYPE_CHECKING, Any, ClassVar, Protocol, TypeVar, Union, cast from scapy.layers.inet import IP from scapy.packet import Packet @@ -332,11 +332,11 @@ def _decorator(func: TestSuiteMethodType) -> type[TestCase]: #: The decorator for functional test cases. -func_test: Callable = TestCase.make_decorator(TestCaseType.FUNCTIONAL) +func_test: Callable[[Any], type["TestCase"]] = TestCase.make_decorator(TestCaseType.FUNCTIONAL) #: The decorator for performance test cases. -perf_test: Callable = TestCase.make_decorator(TestCaseType.PERFORMANCE) +perf_test: Callable[[Any], type["TestCase"]] = TestCase.make_decorator(TestCaseType.PERFORMANCE) #: The decorator for cryptography test cases. -crypto_test: Callable = TestCase.make_decorator(TestCaseType.CRYPTO) +crypto_test: Callable[[Any], type["TestCase"]] = TestCase.make_decorator(TestCaseType.CRYPTO) @dataclass diff --git a/dts/tests/TestSuite_blocklist.py b/dts/tests/TestSuite_blocklist.py index ba37f39ab3..c57231de22 100644 --- a/dts/tests/TestSuite_blocklist.py +++ b/dts/tests/TestSuite_blocklist.py @@ -16,7 +16,6 @@ from framework.testbed_model.port import Port -@requires_link_topology(LinkTopology.TWO_LINKS) class TestBlocklist(TestSuite): """DPDK device blocklisting test suite.""" @@ -45,6 +44,7 @@ def no_blocklisted(self) -> None: """ self._verify_blocklisted_ports([]) + @requires_link_topology(LinkTopology.TWO_LINKS) @func_test def one_port_blocklisted(self) -> None: """Run testpmd with one blocklisted port. @@ -57,6 +57,7 @@ def one_port_blocklisted(self) -> None: """ self._verify_blocklisted_ports(self.topology.sut_ports[:1]) + @requires_link_topology(LinkTopology.TWO_LINKS) @func_test def all_but_one_port_blocklisted(self) -> None: """Run testpmd with all but one blocklisted port. diff --git a/dts/tests/TestSuite_checksum_offload.py b/dts/tests/TestSuite_checksum_offload.py index 394a73c31d..90ca798e56 100644 --- a/dts/tests/TestSuite_checksum_offload.py +++ b/dts/tests/TestSuite_checksum_offload.py @@ -20,9 +20,7 @@ from scapy.packet import Packet, Raw from api.capabilities import ( - LinkTopology, NicCapability, - requires_link_topology, requires_nic_capability, ) from api.packet import send_packet_and_capture @@ -33,7 +31,6 @@ from framework.test_suite import TestSuite, func_test -@requires_link_topology(LinkTopology.TWO_LINKS) @requires_nic_capability(NicCapability.PORT_RX_OFFLOAD_IPV4_CKSUM) @requires_nic_capability(NicCapability.PORT_RX_OFFLOAD_UDP_CKSUM) @requires_nic_capability(NicCapability.PORT_RX_OFFLOAD_TCP_CKSUM) diff --git a/dts/tests/TestSuite_dual_vlan.py b/dts/tests/TestSuite_dual_vlan.py index 860eae7424..1b77dd2b47 100644 --- a/dts/tests/TestSuite_dual_vlan.py +++ b/dts/tests/TestSuite_dual_vlan.py @@ -18,6 +18,7 @@ from scapy.layers.l2 import Dot1Q, Ether from scapy.packet import Packet, Raw +from api.capabilities import LinkTopology, requires_link_topology from api.packet import send_packet_and_capture from api.test import verify from api.testpmd import TestPmd @@ -161,6 +162,7 @@ def _configure_testpmd(self, shell: TestPmd, options: TestCaseOptions, add: bool if self.TestCaseOptions.VLAN_STRIP in options: shell.set_vlan_strip(self.rx_port, add) + @requires_link_topology(LinkTopology.TWO_LINKS) @func_test def insert_second_vlan(self) -> None: """Test that a packet with a single VLAN can have an additional one inserted into it. diff --git a/dts/tests/TestSuite_port_control.py b/dts/tests/TestSuite_port_control.py index d9cc5ff4c9..6be47838d0 100644 --- a/dts/tests/TestSuite_port_control.py +++ b/dts/tests/TestSuite_port_control.py @@ -13,9 +13,7 @@ from scapy.packet import Packet, Raw from api.capabilities import ( - LinkTopology, NicCapability, - requires_link_topology, requires_nic_capability, ) from api.packet import send_packets_and_capture @@ -26,7 +24,6 @@ @requires_nic_capability(NicCapability.PHYSICAL_FUNCTION) -@requires_link_topology(LinkTopology.TWO_LINKS) class TestPortControl(TestSuite): """DPDK Port Control Testing Suite.""" diff --git a/dts/tests/TestSuite_uni_pkt.py b/dts/tests/TestSuite_uni_pkt.py index 97d61cd03a..222276ce67 100644 --- a/dts/tests/TestSuite_uni_pkt.py +++ b/dts/tests/TestSuite_uni_pkt.py @@ -20,9 +20,7 @@ from scapy.packet import Packet, Raw from api.capabilities import ( - LinkTopology, NicCapability, - requires_link_topology, requires_nic_capability, ) from api.packet import send_packet_and_capture @@ -33,7 +31,6 @@ from framework.test_suite import TestSuite, func_test -@requires_link_topology(LinkTopology.TWO_LINKS) class TestUniPkt(TestSuite): """DPDK Unified packet test suite. diff --git a/dts/tests/TestSuite_vlan.py b/dts/tests/TestSuite_vlan.py index 2c5abd68bf..898673fc86 100644 --- a/dts/tests/TestSuite_vlan.py +++ b/dts/tests/TestSuite_vlan.py @@ -29,7 +29,6 @@ @requires_nic_capability(NicCapability.PORT_RX_OFFLOAD_VLAN_FILTER) -@requires_link_topology(LinkTopology.TWO_LINKS) class TestVlan(TestSuite): """DPDK VLAN test suite. @@ -178,6 +177,7 @@ def vlan_no_receipt(self) -> None: testpmd.start() self._send_vlan_packet_and_verify(should_receive=False, strip=False, vlan_id=2) + @requires_link_topology(LinkTopology.TWO_LINKS) @func_test def vlan_header_insertion(self) -> None: """Ensure that VLAN packet is received with the correct inserted VLAN tag. -- 2.49.0

