56 lines
1.5 KiB
Python
Executable File
56 lines
1.5 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
'''
|
|
Test for multiple links between nodes
|
|
validates mininet interfaces against systems interfaces
|
|
'''
|
|
|
|
import unittest
|
|
import pexpect
|
|
|
|
class testMultiLink( unittest.TestCase ):
|
|
|
|
prompt = 'mininet>'
|
|
|
|
def testMultiLink(self):
|
|
p = pexpect.spawn( 'python -m mininet.examples.multilink' )
|
|
p.expect( self.prompt )
|
|
p.sendline( 'intfs' )
|
|
p.expect( 's(\d): lo' )
|
|
intfsOutput = p.before
|
|
# parse interfaces from mininet intfs, and store them in a list
|
|
hostToIntfs = intfsOutput.split( '\r\n' )[ 1:3 ]
|
|
intfList = []
|
|
for hostToIntf in hostToIntfs:
|
|
intfList += [ intf for intf in
|
|
hostToIntf.split()[1].split(',') ]
|
|
|
|
# get interfaces from system by running ifconfig on every host
|
|
sysIntfList = []
|
|
opts = [ 'h(\d)-eth(\d)', self.prompt ]
|
|
p.expect( self.prompt )
|
|
|
|
p.sendline( 'h1 ifconfig' )
|
|
while True:
|
|
p.expect( opts )
|
|
if p.after == self.prompt:
|
|
break
|
|
sysIntfList.append( p.after )
|
|
|
|
p.sendline( 'h2 ifconfig' )
|
|
while True:
|
|
p.expect( opts )
|
|
if p.after == self.prompt:
|
|
break
|
|
sysIntfList.append( p.after )
|
|
|
|
failMsg = ( 'The systems interfaces and mininet interfaces\n'
|
|
'are not the same' )
|
|
|
|
self.assertEqual( sysIntfList, intfList, msg=failMsg )
|
|
p.sendline( 'exit' )
|
|
p.wait()
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|