diff --git a/mininet/test/test_walkthrough.py b/mininet/test/test_walkthrough.py index 8738537..4f90ce9 100755 --- a/mininet/test/test_walkthrough.py +++ b/mininet/test/test_walkthrough.py @@ -7,13 +7,13 @@ TODO: missing xterm test """ import unittest -import pexpect import os import re -from mininet.util import quietRun +from mininet.util import quietRun, pexpect from distutils.version import StrictVersion from time import sleep + def tsharkVersion(): "Return tshark version" versionStr = quietRun( 'tshark -v' ) @@ -95,7 +95,8 @@ class testWalkthrough( unittest.TestCase ): p = pexpect.spawn( 'mn' ) p.expect( self.prompt ) # Third pattern is a local interface beginning with 'eth' or 'en' - interfaces = [ 'h1-eth0', 's1-eth1', r'[^-](eth|en)\w*\d', 'lo', + interfaces = [ r'h1-eth0[:\s]', r's1-eth1[:\s]', + r'[^-](eth|en)\w*\d[:\s]', r'lo[:\s]', self.prompt ] # h1 ifconfig p.sendline( 'h1 ifconfig -a' ) @@ -122,7 +123,7 @@ class testWalkthrough( unittest.TestCase ): ifcount += 1 else: break - self.assertTrue( ifcount >= 3, 'Missing interfaces on s1') + self.assertTrue( ifcount <= 3, 'Missing interfaces on s1') # h1 ps p.sendline( "h1 ps -a | egrep -v 'ps|grep'" ) p.expect( self.prompt ) @@ -156,9 +157,13 @@ class testWalkthrough( unittest.TestCase ): def testSimpleHTTP( self ): "Start an HTTP server on h1 and wget from h2" + if 'Python 2' in quietRun( 'python --version' ): + httpserver = 'SimpleHTTPServer' + else: + httpserver = 'http.server' p = pexpect.spawn( 'mn' ) p.expect( self.prompt ) - p.sendline( 'h1 python -m SimpleHTTPServer 80 &' ) + p.sendline( 'h1 python -m %s 80 &' % httpserver ) # The walkthrough doesn't specify a delay here, and # we also don't read the output (also a possible problem), # but for now let's wait a couple of seconds to make @@ -222,8 +227,8 @@ class testWalkthrough( unittest.TestCase ): p.expect( r'rtt min/avg/max/mdev = ' r'([\d\.]+)/([\d\.]+)/([\d\.]+)/([\d\.]+) ms' ) delay = float( p.match.group( 2 ) ) - self.assertTrue( delay > 40, 'Delay < 40ms' ) - self.assertTrue( delay < 45, 'Delay > 40ms' ) + self.assertTrue( delay >= 40, 'Delay < 40ms' ) + self.assertTrue( delay <= 50, 'Delay > 50s' ) p.expect( self.prompt ) p.sendline( 'exit' ) p.wait() @@ -260,7 +265,7 @@ class testWalkthrough( unittest.TestCase ): p.expect( self.prompt ) for i in range( 1, 3 ): p.sendline( 'h%d ifconfig' % i ) - p.expect( 'HWaddr 00:00:00:00:00:0%d' % i ) + p.expect( r'\s00:00:00:00:00:0%d\s' % i ) p.expect( self.prompt ) p.sendline( 'exit' ) p.expect( pexpect.EOF ) @@ -286,7 +291,9 @@ class testWalkthrough( unittest.TestCase ): "Test running user switch in its own namespace" p = pexpect.spawn( 'mn --innamespace --switch user' ) p.expect( self.prompt ) - interfaces = [ 'h1-eth0', 's1-eth1', '[^-]eth0', 'lo', self.prompt ] + interfaces = [ r'h1-eth0[:\s]', r's1-eth1[:\s]', + r'[^-](eth|en)\w*\d[:\s]', r'lo[:\s]', + self.prompt ] p.sendline( 's1 ifconfig -a' ) ifcount = 0 while True: