Check if scapy packet filter started correctly
Change-Id: I1968540895c56341302f1c71ffa092f11c1f1bfd
diff --git a/TestON/drivers/common/cli/emulator/scapyclidriver.py b/TestON/drivers/common/cli/emulator/scapyclidriver.py
index 96b9c17..0dd3b6b 100644
--- a/TestON/drivers/common/cli/emulator/scapyclidriver.py
+++ b/TestON/drivers/common/cli/emulator/scapyclidriver.py
@@ -725,6 +725,13 @@
main.log.info( "Filter on " + self.name + ' > ' + cmd )
self.handle.sendline( cmd )
self.handle.expect( '"\)\r\n' )
+ # Make sure the sniff function didn't exit due to failures
+ i = self.handle.expect( [ self.scapyPrompt, pexpect.TIMEOUT ], timeout=3 )
+ if i == 0:
+ # sniff exited
+ main.log.error( self.name + ": sniff function exited" )
+ main.log.error( self.name + ": " + self.handle.before )
+ return main.FALSE
# TODO: parse this?
return main.TRUE
except pexpect.TIMEOUT:
diff --git a/TestON/tests/dependencies/topology.py b/TestON/tests/dependencies/topology.py
index cbb14e7..1d45ef3 100644
--- a/TestON/tests/dependencies/topology.py
+++ b/TestON/tests/dependencies/topology.py
@@ -350,7 +350,10 @@
Returns:
main.TRUE if scapy result is expected, otherwise main.FALSE
"""
- receiver.startFilter( ifaceName=dIface, pktFilter=pktFilter )
+ started = receiver.startFilter( ifaceName=dIface, pktFilter=pktFilter )
+ if not started:
+ main.log.error("Failed to start Scapy packet filter")
+ return main.FALSE
sender.sendPacket( iface=sIface )
finished = receiver.checkFilter()
packet = ""
@@ -433,7 +436,10 @@
packetCaptured = True
srcHandle = getattr( main, srcHost )
dstHandle = getattr( main, dstHost )
- dstHandle.startFilter( ifaceName=dstIntf, pktFilter="ip host {}".format( dstIp ) )
+ started = dstHandle.startFilter( ifaceName=dstIntf, pktFilter="ip host {}".format( dstIp ) )
+ if not started:
+ main.log.error("Failed to start Scapy packet filter")
+ return main.FALSE
srcHandle.pingHostSetAlternative( [ dstIp ], IPv6=ipv6 )
finished = dstHandle.checkFilter()
packet = ""