From db628ee3f3f20ea7161ed97c36f88eb7139d6ec2 Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Mon, 29 Apr 2024 13:48:49 +0200 Subject: [PATCH] test: revert back to tcpdump output format when reading pcap Signed-off-by: Joachim Wiberg --- test/case/ietf_routing/ospf_unnumbered_interface.py | 2 +- test/case/infix_interfaces/igmp_basic.py | 8 ++++---- test/case/infix_interfaces/igmp_vlan.py | 12 ++++++------ .../infix_interfaces/static_multicast_filters.py | 8 ++++---- test/infamy/sniffer.py | 7 ++++++- 5 files changed, 21 insertions(+), 16 deletions(-) diff --git a/test/case/ietf_routing/ospf_unnumbered_interface.py b/test/case/ietf_routing/ospf_unnumbered_interface.py index 68256e32..50e524da 100755 --- a/test/case/ietf_routing/ospf_unnumbered_interface.py +++ b/test/case/ietf_routing/ospf_unnumbered_interface.py @@ -187,7 +187,7 @@ with infamy.Test() as test: snif = infamy.Sniffer(ns0, "ip proto 89") with snif: time.sleep(15) # default hello time 10s - assert(snif.output().stdout == "") + assert(snif.packets() == "") with test.step("Test connectivity"): _, hport0 = env.ltop.xlate("host", "data1") diff --git a/test/case/infix_interfaces/igmp_basic.py b/test/case/infix_interfaces/igmp_basic.py index 0d4b0fb0..cd620493 100755 --- a/test/case/infix_interfaces/igmp_basic.py +++ b/test/case/infix_interfaces/igmp_basic.py @@ -98,16 +98,16 @@ with infamy.Test() as test: time.sleep(5) with snif_nojoin: time.sleep(5) - assert(snif_receiver.output().stdout != "") - assert(snif_nojoin.output().stdout != "") + assert(snif_receiver.packets() != "") + assert(snif_nojoin.packets() != "") print("As expected, unregistered multicast is received on both ports") with receiver: with snif_receiver,snif_nojoin: time.sleep(5) - assert(snif_nojoin.output().stdout == "") + assert(snif_nojoin.packets() == "") print("As expected, registered multicast is NOT forwarded to non-member port") - assert(snif_receiver.output().stdout != "") + assert(snif_receiver.packets() != "") print("As expected, registered multicast is forwarded to the member port") test.succeed() diff --git a/test/case/infix_interfaces/igmp_vlan.py b/test/case/infix_interfaces/igmp_vlan.py index 98113fd3..7b107fe4 100755 --- a/test/case/infix_interfaces/igmp_vlan.py +++ b/test/case/infix_interfaces/igmp_vlan.py @@ -282,13 +282,13 @@ with infamy.Test() as test: # TODO: Here should we check for 224.1.1.1 in mdb, also # verify that 224.2.2.2 does not exist in mdb - assert(snif_vlan77_sender_incorrect.output().stdout == "") - assert(snif_vlan77_receiver_incorrect.output().stdout == "") - assert(snif_vlan55_receiver_incorrect.output().stdout == "") - assert(snif_vlan55_sender_incorrect.output().stdout == "") + assert(snif_vlan77_sender_incorrect.packets() == "") + assert(snif_vlan77_receiver_incorrect.packets() == "") + assert(snif_vlan55_receiver_incorrect.packets() == "") + assert(snif_vlan55_sender_incorrect.packets() == "") print("Multicast does not exist on ports/VLANs where they should not be") - assert(snif_vlan55_receiver_correct.output().stdout != "") - assert(snif_vlan77_receiver_correct.output().stdout != "") + assert(snif_vlan55_receiver_correct.packets() != "") + assert(snif_vlan77_receiver_correct.packets() != "") print("Multicast received on correct port and VLAN") test.succeed() diff --git a/test/case/infix_interfaces/static_multicast_filters.py b/test/case/infix_interfaces/static_multicast_filters.py index 5230f2dd..40cfc017 100755 --- a/test/case/infix_interfaces/static_multicast_filters.py +++ b/test/case/infix_interfaces/static_multicast_filters.py @@ -125,8 +125,8 @@ with infamy.Test() as test: time.sleep(5) with snif_nojoin: time.sleep(5) - assert(snif_receiver.output().stdout != "") - assert(snif_nojoin.output().stdout != "") + assert(snif_receiver.packets() != "") + assert(snif_nojoin.packets() != "") print("As expected, unregistered multicast is received on both ports") set_static_multicast_filter(target, "224.1.1.1") @@ -134,9 +134,9 @@ with infamy.Test() as test: with snif_receiver,snif_nojoin: time.sleep(5) - assert(snif_nojoin.output().stdout == "") + assert(snif_nojoin.packets() == "") print("As expected, registered multicast is NOT forwarded to non-member port") - assert(snif_receiver.output().stdout != "") + assert(snif_receiver.packets() != "") print("As expected, registered multicast is forwarded to the member port") test.succeed() diff --git a/test/infamy/sniffer.py b/test/infamy/sniffer.py index ceb15818..723e1650 100644 --- a/test/infamy/sniffer.py +++ b/test/infamy/sniffer.py @@ -37,4 +37,9 @@ class Sniffer: def output(self): """Return PCAP output""" - return self.netns.runsh(f"tshark -n -r {self.pcap.name}") + return self.netns.runsh(f"tcpdump -n -r {self.pcap.name}") + + def packets(self): + """Filtered text output, skipping tcpdump "reading from file" initial line""" + lines = self.output().stdout.split('\n') + return '\n'.join(lines[1:])