X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Femuvim%2Ftest%2Ftest_emulator.py;h=d552f1f8b5a25810c7daeb68e2a2f3a3e47f1f06;hb=0ca5d0e5cb1f5af469aa90edab7fae652c138961;hp=ef22a22acdb6962296d4831da86705ce6101f0b9;hpb=3eef9fde234a4379d80e0435bac9ce650407a895;p=osm%2Fvim-emu.git diff --git a/src/emuvim/test/test_emulator.py b/src/emuvim/test/test_emulator.py index ef22a22..d552f1f 100755 --- a/src/emuvim/test/test_emulator.py +++ b/src/emuvim/test/test_emulator.py @@ -6,105 +6,14 @@ Python API. Does not test API endpoints. This is done in separated test suites. """ -import unittest -import os import time -import subprocess -import docker -from dcemulator.net import DCNetwork -from dcemulator.node import EmulatorCompute -from mininet.node import Host, Controller, OVSSwitch, Docker -from mininet.link import TCLink -from mininet.topo import SingleSwitchTopo, LinearTopo -from mininet.log import setLogLevel -from mininet.util import quietRun -from mininet.clean import cleanup - - -class simpleTestTopology( unittest.TestCase ): - """ - Helper class to do basic test setups. - s1 -- s2 -- s3 -- ... -- sN - """ - - def __init__(self, *args, **kwargs): - self.net = None - self.s = [] # list of switches - self.h = [] # list of hosts - self.d = [] # list of docker containers - self.dc = [] # list of data centers - self.docker_cli = None - super(simpleTestTopology, self).__init__(*args, **kwargs) - - def createNet( - self, - nswitches=0, ndatacenter=0, nhosts=0, ndockers=0, - autolinkswitches=False): - """ - Creates a Mininet instance and automatically adds some - nodes to it. - """ - self.net = net = DCNetwork() - - # add some switches - for i in range(0, nswitches): - self.s.append(self.net.addSwitch('s%d' % i)) - # if specified, chain all switches - if autolinkswitches: - for i in range(0, len(self.s) - 1): - self.net.addLink(self.s[i], self.s[i + 1]) - # add some data centers - for i in range(0, ndatacenter): - self.dc.append( - self.net.addDatacenter( - 'datacenter%d' % i, - metadata={"unittest_dc": i})) - # add some hosts - for i in range(0, nhosts): - self.h.append(self.net.addHost('h%d' % i)) - # add some dockers - for i in range(0, ndockers): - self.d.append(self.net.addDocker('d%d' % i, dimage="ubuntu")) - - def startNet(self): - self.net.start() - - def stopNet(self): - self.net.stop() - - def getDockerCli(self): - """ - Helper to interact with local docker instance. - """ - if self.docker_cli is None: - self.docker_cli = docker.Client( - base_url='unix://var/run/docker.sock') - return self.docker_cli - - def getDockernetContainers(self): - """ - List the containers managed by dockernet - """ - return self.getDockerCli().containers(filters={"label": "com.dockernet"}) - - @staticmethod - def setUp(): - pass - - @staticmethod - def tearDown(): - cleanup() - # make sure that all pending docker containers are killed - with open(os.devnull, 'w') as devnull: - subprocess.call( - "sudo docker rm -f $(sudo docker ps --filter 'label=com.dockernet' -a -q)", - stdout=devnull, - stderr=devnull, - shell=True) +import unittest +from emuvim.dcemulator.node import EmulatorCompute +from emuvim.test.base import SimpleTestTopology #@unittest.skip("disabled topology tests for development") -class testEmulatorTopology( simpleTestTopology ): +class testEmulatorTopology( SimpleTestTopology ): """ Tests to check the topology API of the emulator. """ @@ -131,6 +40,7 @@ class testEmulatorTopology( simpleTestTopology ): # stop Mininet network self.stopNet() + @unittest.skip("disabled to test if CI fails because this is the first test.") def testMultipleDatacenterDirect(self): """ Create a two data centers and interconnect them. @@ -147,6 +57,7 @@ class testEmulatorTopology( simpleTestTopology ): assert(len(self.getDockernetContainers()) == 0) assert(len(self.net.hosts) == 2) assert(len(self.net.switches) == 2) + time.sleep(5) # check connectivity by using ping assert(self.net.ping([self.h[0], self.h[1]]) <= 0.0) # stop Mininet network @@ -179,7 +90,7 @@ class testEmulatorTopology( simpleTestTopology ): #@unittest.skip("disabled compute tests for development") -class testEmulatorCompute( simpleTestTopology ): +class testEmulatorCompute( SimpleTestTopology ): """ Tests to check the emulator's API to add and remove compute resources at runtime.