4 Tests for controllers.py and controllers2.py
8 from mininet.util import pexpect
10 class testControllers( unittest.TestCase ):
14 def connectedTest( self, name, cmap ):
15 "Verify that switches are connected to the controller specified by cmap"
16 p = pexpect.spawn( 'python -m %s' % name )
17 p.expect( self.prompt )
18 # but first a simple ping test
19 p.sendline( 'pingall' )
20 p.expect ( '(\d+)% dropped' )
21 percent = int( p.match.group( 1 ) ) if p.match else -1
22 self.assertEqual( percent, 0 )
23 p.expect( self.prompt )
24 # verify connected controller
26 p.sendline( 'sh ovs-vsctl get-controller %s' % switch )
27 p.expect( 'tcp:([\d.:]+)')
28 actual = p.match.group(1)
29 expected = cmap[ switch ]
30 self.assertEqual( actual, expected )
31 p.expect( self.prompt )
35 def testControllers( self ):
38 cmap = { 's1': c0, 's2': c1, 's3': c0 }
39 self.connectedTest( 'mininet.examples.controllers', cmap )
41 def testControllers2( self ):
44 cmap = { 's1': c0, 's2': c1 }
45 self.connectedTest( 'mininet.examples.controllers2', cmap )
47 if __name__ == '__main__':