Tweaked logic on sending and verifying packets for more concise code, added verbose and promisc function calls from pmd shell module.
Signed-off-by: Dean Marx <dm...@iol.unh.edu> --- dts/tests/TestSuite_vlan.py | 59 +++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 32 deletions(-) diff --git a/dts/tests/TestSuite_vlan.py b/dts/tests/TestSuite_vlan.py index 8b6827ec4b..b9b2a98588 100644 --- a/dts/tests/TestSuite_vlan.py +++ b/dts/tests/TestSuite_vlan.py @@ -48,29 +48,26 @@ def send_vlan_packet_and_verify( strip: indicates whether stripping is on or off, and when the vlan tag is checked for a match """ - data = "P" * 10 - packet = Ether() / Dot1Q(vlan=vlan_id) / Raw(load=data) + packet = Ether() / Dot1Q(vlan=vlan_id) / Raw(load='xxxxx') received_packets = self.send_packet_and_capture(packet) - received_packets = [ - packets - for packets in received_packets - if hasattr(packets, "load") and data in str((packets.load)) - ] + test_packet = None + for packet in received_packets: + if packet.haslayer(Raw) and packet[Raw].load == b'xxxxx': + test_packet = packet + break if should_receive: self.verify( - len(received_packets) == 1, "Packet was dropped when it should have been received" + test_packet is not None, "Packet was dropped when it should have been received" ) - received = received_packets[0] if strip: - self.verify(Dot1Q not in received, "Vlan tag was not stripped successfully") + self.verify(Dot1Q not in test_packet, "Vlan tag was not stripped successfully") else: - if len(received_packets) == 1: self.verify( - received.vlan == vlan_id, "The received tag did not match the expected tag" + test_packet.vlan == vlan_id, "The received tag did not match the expected tag" ) else: self.verify( - not len(received_packets) == 1, + test_packet is None, "Packet was received when it should have been dropped", ) @@ -81,20 +78,18 @@ def send_packet_and_verify_insertion(self, expected_id: int = -1) -> None: expected_id: the vlan id that is being inserted through tx_offload configuration should_receive: indicate whether the packet should be successfully received """ - data = "P" * 10 - packet = Ether() / Raw(load=data) + packet = Ether() / Raw(load='xxxxx') received_packets = self.send_packet_and_capture(packet) - received_packets = [ - packets - for packets in received_packets - if hasattr(packets, "load") and data in str((packets.load)) - ] + test_packet = None + for packet in received_packets: + if packet.haslayer(Raw) and packet[Raw].load == b'xxxxx': + test_packet = packet + break self.verify( - len(received_packets) == 1, "Packet was dropped when it should have been received" + test_packet is not None, "Packet was dropped when it should have been received" ) - received = received_packets[0] - self.verify(Dot1Q in received, "The received packet did not have a vlan tag") - self.verify(received.vlan == expected_id, "The received tag did not match the expected tag") + self.verify(Dot1Q in test_packet, "The received packet did not have a vlan tag") + self.verify(test_packet.vlan == expected_id, "The received tag did not match the expected tag") def test_vlan_receipt_no_stripping(self) -> None: """Ensure vlan packet is dropped when receipts are enabled and header stripping is disabled. @@ -104,8 +99,8 @@ def test_vlan_receipt_no_stripping(self) -> None: """ testpmd = self.sut_node.create_interactive_shell(TestPmdShell, privileged=True) testpmd.set_forward_mode(TestPmdForwardingModes.mac) - testpmd.send_command("set verbose 1", "testpmd>") - testpmd.send_command("set promisc 0 off", "testpmd>") + testpmd.set_verbose(1) + testpmd.set_promisc(0, False) testpmd.vlan_filter_set_on(0) testpmd.rx_vlan_add(1, 0) testpmd.start() @@ -122,8 +117,8 @@ def test_vlan_receipt_stripping(self) -> None: """ testpmd = self.sut_node.create_interactive_shell(TestPmdShell, privileged=True) testpmd.set_forward_mode(TestPmdForwardingModes.mac) - testpmd.send_command("set verbose 1", "testpmd>") - testpmd.send_command("set promisc 0 off", "testpmd>") + testpmd.set_verbose(1) + testpmd.set_promisc(0, False) testpmd.vlan_filter_set_on(0) testpmd.rx_vlan_add(1, 0) testpmd.vlan_strip_set_on(0) @@ -140,8 +135,8 @@ def test_vlan_no_receipt(self) -> None: """ testpmd = self.sut_node.create_interactive_shell(TestPmdShell, privileged=True) testpmd.set_forward_mode(TestPmdForwardingModes.mac) - testpmd.send_command("set verbose 1", "testpmd>") - testpmd.send_command("set promisc 0 off", "testpmd>") + testpmd.set_verbose(1) + testpmd.set_promisc(0, False) testpmd.vlan_filter_set_on(0) testpmd.rx_vlan_add(1, 0) testpmd.start() @@ -158,8 +153,8 @@ def test_vlan_header_insertion(self) -> None: """ testpmd = self.sut_node.create_interactive_shell(TestPmdShell, privileged=True) testpmd.set_forward_mode(TestPmdForwardingModes.mac) - testpmd.send_command("set verbose 1", "testpmd>") - testpmd.send_command("set promisc 0 off", "testpmd>") + testpmd.set_verbose(1) + testpmd.set_promisc(0, False) testpmd.port_stop_all() testpmd.tx_vlan_set(1, 51) testpmd.port_start_all() -- 2.44.0