Collect t3 output on SRMulticast failures
Change-Id: I5d2a473a7c3182f36a0a4c408fbad53607483402
diff --git a/TestON/tests/USECASE/SegmentRouting/SRMulticast/SRMulticast.params b/TestON/tests/USECASE/SegmentRouting/SRMulticast/SRMulticast.params
index f687a40..c9f4f55 100644
--- a/TestON/tests/USECASE/SegmentRouting/SRMulticast/SRMulticast.params
+++ b/TestON/tests/USECASE/SegmentRouting/SRMulticast/SRMulticast.params
@@ -34,9 +34,9 @@
</CTRL>
<timers>
- <LinkDiscovery>45</LinkDiscovery>
- <SwitchDiscovery>45</SwitchDiscovery>
- <OnosDiscovery>45</OnosDiscovery>
+ <LinkDiscovery>30</LinkDiscovery>
+ <SwitchDiscovery>30</SwitchDiscovery>
+ <OnosDiscovery>30</OnosDiscovery>
<loadNetcfgSleep>5</loadNetcfgSleep>
<startMininetSleep>60</startMininetSleep>
<balanceMasterSleep>10</balanceMasterSleep>
diff --git a/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py b/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py
index 071724e..5b1645b 100644
--- a/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py
+++ b/TestON/tests/USECASE/SegmentRouting/dependencies/Testcaselib.py
@@ -1006,10 +1006,15 @@
main.log.debug( host.hostMac )
@staticmethod
- def verifyMulticastTraffic( main, routeName, expect, skipOnFail=True, maxRetry=3 ):
+ def verifyMulticastTraffic( main, routeName, expect, skipOnFail=True, maxRetry=0 ):
"""
Verify multicast traffic using scapy
"""
+ from tests.dependencies.topology import Topology
+ try:
+ main.topo
+ except ( NameError, AttributeError ):
+ main.topo = Topology()
routeData = main.multicastConfig[ routeName ]
srcs = main.mcastRoutes[ routeName ][ "src" ]
dsts = main.mcastRoutes[ routeName ][ "dst" ]
@@ -1038,44 +1043,21 @@
pkt = srcEntry[ "packet" ]
# Send packet and check received packet
expectedResult = expect.pop( 0 ) if isinstance( expect, list ) else expect
- trafficResult = utilities.retry( Testcaselib.sendMulticastTraffic,
- main.FALSE,
- args=( main, sender, receiver, pktFilter, pkt,
- sIface, dIface, expectedResult ),
- attempts=maxRetry,
- sleep=1 )
+ t3Cmd = "t3-troubleshoot -vv -sp {} -et ipv{} -d {} -dm {}".format( srcEntry[ "port" ], routeData[ "ipVersion" ],
+ routeData[ "group" ], srcEntry[ "Ether" ] )
+ trafficResult = main.topo.sendScapyPackets( sender, receiver, pktFilter, pkt, sIface, dIface,
+ expectedResult, maxRetry, True, t3Cmd )
utilities.assert_equals( expect=main.TRUE,
actual=trafficResult,
onpass="{} to {}: Pass".format( srcEntry[ "host" ], dstEntry[ "host" ] ),
onfail="{} to {}: Fail".format( srcEntry[ "host" ], dstEntry[ "host" ] ) )
if skipOnFail and trafficResult != main.TRUE:
+ main.stop()
Testcaselib.saveOnosDiagnostics( main )
Testcaselib.cleanup( main, copyKarafLog=False )
main.skipCase()
@staticmethod
- def sendMulticastTraffic( main, sender, receiver, pktFilter, pkt, sIface=None, dIface=None, expect=True ):
- """
- Send multicast traffic using scapy
- """
- receiver.startFilter( ifaceName=dIface, pktFilter=pktFilter )
- sender.sendPacket( iface=sIface )
- finished = receiver.checkFilter()
- packet = ""
- if finished:
- packets = receiver.readPackets()
- for packet in packets.splitlines():
- main.log.debug( packet )
- else:
- kill = receiver.killFilter()
- main.log.debug( kill )
- sender.handle.sendline( "" )
- sender.handle.expect( sender.scapyPrompt )
- main.log.debug( sender.handle.before )
- packetCaptured = True if pkt in packet else False
- return main.TRUE if packetCaptured == expect else main.FALSE
-
- @staticmethod
def verifyPing( main, srcList, dstList, ipv6=False, expect=True, wait=1, acceptableFailed=0, skipOnFail=True ):
"""
Verify reachability from each host in srcList to each host in dstList