fixed emane version checks, fixed emane config message handling, added initial emane test cases
This commit is contained in:
parent
613e550e8a
commit
dced47b588
8 changed files with 275 additions and 57 deletions
|
@ -19,8 +19,8 @@ class Core(object):
|
|||
self.nodes = {}
|
||||
self.node_ips = {}
|
||||
|
||||
def create_node(self, name):
|
||||
node = self.session.add_object(cls=nodes.CoreNode, name=name)
|
||||
def create_node(self, name, cls=nodes.CoreNode, objid=None):
|
||||
node = self.session.add_object(cls=cls, name=name, objid=objid)
|
||||
self.nodes[name] = node
|
||||
|
||||
def add_interface(self, network, name):
|
||||
|
|
233
daemon/tests/test_emane.py
Normal file
233
daemon/tests/test_emane.py
Normal file
|
@ -0,0 +1,233 @@
|
|||
"""
|
||||
Unit tests for testing with a CORE switch.
|
||||
"""
|
||||
|
||||
from core.emane.bypass import EmaneBypassModel
|
||||
from core.emane.commeffect import EmaneCommEffectModel
|
||||
from core.emane.ieee80211abg import EmaneIeee80211abgModel
|
||||
from core.emane.nodes import EmaneNode
|
||||
from core.emane.rfpipe import EmaneRfPipeModel
|
||||
from core.services import quagga
|
||||
from core.services import utility
|
||||
|
||||
|
||||
class TestGui:
|
||||
def test_80211(self, core):
|
||||
"""
|
||||
Test emane 80211 model.
|
||||
|
||||
:param conftest.Core core: core fixture to test with
|
||||
"""
|
||||
|
||||
# load services
|
||||
quagga.load_services()
|
||||
utility.load_services()
|
||||
|
||||
# set and load emane models
|
||||
core.session.master = True
|
||||
core.session.location.setrefgeo(47.57917, -122.13232, 2.00000)
|
||||
core.session.location.refscale = 150.0
|
||||
core.session.emane.loadmodels()
|
||||
|
||||
# create emane node for networking the core nodes
|
||||
emane_node = core.session.add_object(name="emane", cls=EmaneNode)
|
||||
emane_node.setposition(x=80, y=50)
|
||||
|
||||
# set the emane model
|
||||
emane_model = EmaneIeee80211abgModel
|
||||
values = emane_model.getdefaultvalues()
|
||||
core.session.emane.setconfig(emane_node.objid, emane_model.name, values)
|
||||
|
||||
# create nodes
|
||||
core.create_node("n1", objid=1)
|
||||
core.create_node("n2", objid=2)
|
||||
node_one = core.get_node("n1")
|
||||
node_two = core.get_node("n2")
|
||||
|
||||
# set node positions
|
||||
node_one.setposition(x=150, y=150)
|
||||
node_two.setposition(x=300, y=150)
|
||||
|
||||
# add services
|
||||
services = "zebra|OSPFv3MDR|IPForward"
|
||||
core.session.services.addservicestonode(node_one, "", services)
|
||||
core.session.services.addservicestonode(node_two, "", services)
|
||||
|
||||
# add interfaces to nodes
|
||||
core.add_interface(emane_node, "n1")
|
||||
core.add_interface(emane_node, "n2")
|
||||
|
||||
# instantiate session
|
||||
core.session.instantiate()
|
||||
|
||||
# assert node directories created
|
||||
core.assert_nodes()
|
||||
|
||||
# ping n2 from n1 and assert success
|
||||
status = core.ping("n1", "n2")
|
||||
assert not status
|
||||
|
||||
def test_rfpipe(self, core):
|
||||
"""
|
||||
Test emane 80211 model.
|
||||
|
||||
:param conftest.Core core: core fixture to test with
|
||||
"""
|
||||
|
||||
# load services
|
||||
quagga.load_services()
|
||||
utility.load_services()
|
||||
|
||||
# set and load emane models
|
||||
core.session.master = True
|
||||
core.session.location.setrefgeo(47.57917, -122.13232, 2.00000)
|
||||
core.session.location.refscale = 150.0
|
||||
core.session.emane.loadmodels()
|
||||
|
||||
# create emane node for networking the core nodes
|
||||
emane_node = core.session.add_object(name="emane", cls=EmaneNode)
|
||||
emane_node.setposition(x=80, y=50)
|
||||
|
||||
# set the emane model
|
||||
emane_model = EmaneRfPipeModel
|
||||
values = emane_model.getdefaultvalues()
|
||||
core.session.emane.setconfig(emane_node.objid, emane_model.name, values)
|
||||
|
||||
# create nodes
|
||||
core.create_node("n1", objid=1)
|
||||
core.create_node("n2", objid=2)
|
||||
node_one = core.get_node("n1")
|
||||
node_two = core.get_node("n2")
|
||||
|
||||
# set node positions
|
||||
node_one.setposition(x=150, y=150)
|
||||
node_two.setposition(x=300, y=150)
|
||||
|
||||
# add services
|
||||
services = "zebra|OSPFv3MDR|IPForward"
|
||||
core.session.services.addservicestonode(node_one, "", services)
|
||||
core.session.services.addservicestonode(node_two, "", services)
|
||||
|
||||
# add interfaces to nodes
|
||||
core.add_interface(emane_node, "n1")
|
||||
core.add_interface(emane_node, "n2")
|
||||
|
||||
# instantiate session
|
||||
core.session.instantiate()
|
||||
|
||||
# assert node directories created
|
||||
core.assert_nodes()
|
||||
|
||||
# ping n2 from n1 and assert success
|
||||
status = core.ping("n1", "n2")
|
||||
assert not status
|
||||
|
||||
def test_commeffect(self, core):
|
||||
"""
|
||||
Test emane 80211 model.
|
||||
|
||||
:param conftest.Core core: core fixture to test with
|
||||
"""
|
||||
|
||||
# load services
|
||||
quagga.load_services()
|
||||
utility.load_services()
|
||||
|
||||
# set and load emane models
|
||||
core.session.master = True
|
||||
core.session.location.setrefgeo(47.57917, -122.13232, 2.00000)
|
||||
core.session.location.refscale = 150.0
|
||||
core.session.emane.loadmodels()
|
||||
|
||||
# create emane node for networking the core nodes
|
||||
emane_node = core.session.add_object(name="emane", cls=EmaneNode)
|
||||
emane_node.setposition(x=80, y=50)
|
||||
|
||||
# set the emane model
|
||||
emane_model = EmaneCommEffectModel
|
||||
values = emane_model.getdefaultvalues()
|
||||
core.session.emane.setconfig(emane_node.objid, emane_model.name, values)
|
||||
|
||||
# create nodes
|
||||
core.create_node("n1", objid=1)
|
||||
core.create_node("n2", objid=2)
|
||||
node_one = core.get_node("n1")
|
||||
node_two = core.get_node("n2")
|
||||
|
||||
# set node positions
|
||||
node_one.setposition(x=150, y=150)
|
||||
node_two.setposition(x=300, y=150)
|
||||
|
||||
# add services
|
||||
services = "zebra|OSPFv3MDR|IPForward"
|
||||
core.session.services.addservicestonode(node_one, "", services)
|
||||
core.session.services.addservicestonode(node_two, "", services)
|
||||
|
||||
# add interfaces to nodes
|
||||
core.add_interface(emane_node, "n1")
|
||||
core.add_interface(emane_node, "n2")
|
||||
|
||||
# instantiate session
|
||||
core.session.instantiate()
|
||||
|
||||
# assert node directories created
|
||||
core.assert_nodes()
|
||||
|
||||
# ping n2 from n1 and assert success
|
||||
status = core.ping("n1", "n2")
|
||||
assert not status
|
||||
|
||||
def test_bypass(self, core):
|
||||
"""
|
||||
Test emane 80211 model.
|
||||
|
||||
:param conftest.Core core: core fixture to test with
|
||||
"""
|
||||
|
||||
# load services
|
||||
quagga.load_services()
|
||||
utility.load_services()
|
||||
|
||||
# set and load emane models
|
||||
core.session.master = True
|
||||
core.session.location.setrefgeo(47.57917, -122.13232, 2.00000)
|
||||
core.session.location.refscale = 150.0
|
||||
core.session.emane.loadmodels()
|
||||
|
||||
# create emane node for networking the core nodes
|
||||
emane_node = core.session.add_object(name="emane", cls=EmaneNode)
|
||||
emane_node.setposition(x=80, y=50)
|
||||
|
||||
# set the emane model
|
||||
emane_model = EmaneBypassModel
|
||||
values = emane_model.getdefaultvalues()
|
||||
core.session.emane.setconfig(emane_node.objid, emane_model.name, values)
|
||||
|
||||
# create nodes
|
||||
core.create_node("n1", objid=1)
|
||||
core.create_node("n2", objid=2)
|
||||
node_one = core.get_node("n1")
|
||||
node_two = core.get_node("n2")
|
||||
|
||||
# set node positions
|
||||
node_one.setposition(x=150, y=150)
|
||||
node_two.setposition(x=300, y=150)
|
||||
|
||||
# add services
|
||||
services = "zebra|OSPFv3MDR|IPForward"
|
||||
core.session.services.addservicestonode(node_one, "", services)
|
||||
core.session.services.addservicestonode(node_two, "", services)
|
||||
|
||||
# add interfaces to nodes
|
||||
core.add_interface(emane_node, "n1")
|
||||
core.add_interface(emane_node, "n2")
|
||||
|
||||
# instantiate session
|
||||
core.session.instantiate()
|
||||
|
||||
# assert node directories created
|
||||
core.assert_nodes()
|
||||
|
||||
# ping n2 from n1 and assert success
|
||||
status = core.ping("n1", "n2")
|
||||
assert not status
|
|
@ -3,10 +3,16 @@ Unit tests for testing with a CORE switch.
|
|||
"""
|
||||
from core.api import coreapi, dataconversion
|
||||
from core.api.coreapi import CoreExecuteTlv
|
||||
from core.enumerations import CORE_API_PORT, EventTypes, EventTlvs, MessageFlags, LinkTlvs, LinkTypes, ExecuteTlvs, \
|
||||
MessageTypes
|
||||
from core.enumerations import CORE_API_PORT
|
||||
from core.enumerations import EventTlvs
|
||||
from core.enumerations import EventTypes
|
||||
from core.enumerations import ExecuteTlvs
|
||||
from core.enumerations import LinkTlvs
|
||||
from core.enumerations import LinkTypes
|
||||
from core.enumerations import MessageFlags
|
||||
from core.enumerations import MessageTypes
|
||||
from core.misc import ipaddress
|
||||
from core.netns.nodes import SwitchNode, CoreNode
|
||||
from core.netns.nodes import SwitchNode
|
||||
|
||||
|
||||
def cmd(node, exec_cmd):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue