From 3df3610199bae53ea562eca9768c2328644f43ab Mon Sep 17 00:00:00 2001 From: cody burkard Date: Wed, 3 Sep 2014 21:27:38 -0700 Subject: [PATCH] adding sanity check for cluster edition --- examples/cluster.py | 4 ++-- examples/clusterSanity.py | 22 ++++++++++++++++++++++ examples/test/test_clusterSanity.py | 27 +++++++++++++++++++++++++++ 3 files changed, 51 insertions(+), 2 deletions(-) create mode 100755 examples/clusterSanity.py create mode 100755 examples/test/test_clusterSanity.py diff --git a/examples/cluster.py b/examples/cluster.py index bd00a6d..e5f374b 100755 --- a/examples/cluster.py +++ b/examples/cluster.py @@ -129,7 +129,7 @@ class RemoteMixin( object ): serverIP = self.findServerIP( server ) self.serverIP = serverIP if not user: - user = quietRun( 'who am i' ).split()[ 0 ] + user = quietRun( 'echo $SUDO_USER' ) self.user = user if self.user and self.server: self.dest = '%s@%s' % ( self.user, self.serverIP ) @@ -595,7 +595,7 @@ class MininetCluster( Mininet ): for server in self.servers } self.user = params.pop( 'user', None ) if self.servers and not self.user: - self.user = quietRun( 'who am i' ).split()[ 0 ] + self.user = quietRun( 'echo $SUDO_USER' ) if params.pop( 'precheck' ): self.precheck() self.connections = {} diff --git a/examples/clusterSanity.py b/examples/clusterSanity.py new file mode 100755 index 0000000..ac50f2d --- /dev/null +++ b/examples/clusterSanity.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python + +''' +A sanity check for cluster edition +''' + +from mininet.examples.cluster import MininetCluster +from mininet.log import info, setLogLevel +from mininet.examples.clustercli import DemoCLI as CLI +from mininet.topo import SingleSwitchTopo + +def clusterSanity(): + "Sanity check for cluster mode" + topo = SingleSwitchTopo() + net = MininetCluster( topo=topo ) + net.start() + CLI( net ) + net.stop() + +if __name__ == '__main__': + setLogLevel( 'info' ) + clusterSanity() diff --git a/examples/test/test_clusterSanity.py b/examples/test/test_clusterSanity.py new file mode 100755 index 0000000..cdbc390 --- /dev/null +++ b/examples/test/test_clusterSanity.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python + +''' +A simple sanity check test for cluster edition +''' + +import unittest +import pexpect + +class clusterSanityCheck( unittest.TestCase ): + + prompt = 'mininet>' + + def testClusterPingAll( self ): + p = pexpect.spawn( 'python -m mininet.examples.clusterSanity' ) + p.expect( self.prompt ) + p.sendline( 'pingall' ) + p.expect ( '(\d+)% dropped' ) + percent = int( p.match.group( 1 ) ) if p.match else -1 + self.assertEqual( percent, 0 ) + p.expect( self.prompt ) + p.sendline( 'exit' ) + p.wait() + + +if __name__ == '__main__': + unittest.main()