removed unused imports in emane files, refactored emane testing to simplify test cases and reduce repeated code
This commit is contained in:
parent
dced47b588
commit
673fdc94b5
9 changed files with 99 additions and 173 deletions
|
@ -9,11 +9,6 @@ from core.misc import log
|
||||||
|
|
||||||
logger = log.get_logger(__name__)
|
logger = log.get_logger(__name__)
|
||||||
|
|
||||||
try:
|
|
||||||
from emanesh.events import EventService
|
|
||||||
except ImportError:
|
|
||||||
logger.error("error importing emanesh")
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import emaneeventservice
|
import emaneeventservice
|
||||||
import emaneeventcommeffect
|
import emaneeventcommeffect
|
||||||
|
@ -99,8 +94,7 @@ class EmaneCommEffectModel(EmaneModel):
|
||||||
link parameters.
|
link parameters.
|
||||||
"""
|
"""
|
||||||
if emane.VERSION >= emane.EMANE091:
|
if emane.VERSION >= emane.EMANE091:
|
||||||
raise NotImplementedError, \
|
raise NotImplementedError("CommEffect linkconfig() not implemented for EMANE 0.9.1+")
|
||||||
"CommEffect linkconfig() not implemented for EMANE 0.9.1+"
|
|
||||||
|
|
||||||
def z(x):
|
def z(x):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -10,11 +10,6 @@ from core.misc import log
|
||||||
|
|
||||||
logger = log.get_logger(__name__)
|
logger = log.get_logger(__name__)
|
||||||
|
|
||||||
try:
|
|
||||||
from emanesh.events import EventService
|
|
||||||
except:
|
|
||||||
logger.error("error importing emanesh")
|
|
||||||
|
|
||||||
|
|
||||||
class EmaneIeee80211abgModel(EmaneModel):
|
class EmaneIeee80211abgModel(EmaneModel):
|
||||||
def __init__(self, session, object_id=None):
|
def __init__(self, session, object_id=None):
|
||||||
|
@ -33,7 +28,7 @@ class EmaneIeee80211abgModel(EmaneModel):
|
||||||
# MAC parameters
|
# MAC parameters
|
||||||
_confmatrix_mac_base = [
|
_confmatrix_mac_base = [
|
||||||
("mode", ConfigDataTypes.UINT8.value, '0',
|
("mode", ConfigDataTypes.UINT8.value, '0',
|
||||||
'0 802.11b (DSSS only),1 802.11b (DSSS only),' + \
|
'0 802.11b (DSSS only),1 802.11b (DSSS only),' +
|
||||||
'2 802.11a or g (OFDM),3 802.11b/g (DSSS and OFDM)', 'mode'),
|
'2 802.11a or g (OFDM),3 802.11b/g (DSSS and OFDM)', 'mode'),
|
||||||
("enablepromiscuousmode", ConfigDataTypes.BOOL.value, '0',
|
("enablepromiscuousmode", ConfigDataTypes.BOOL.value, '0',
|
||||||
'On,Off', 'enable promiscuous mode'),
|
'On,Off', 'enable promiscuous mode'),
|
||||||
|
|
|
@ -16,7 +16,6 @@ from core.misc import log
|
||||||
logger = log.get_logger(__name__)
|
logger = log.get_logger(__name__)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from emanesh.events import EventService
|
|
||||||
from emanesh.events import LocationEvent
|
from emanesh.events import LocationEvent
|
||||||
except ImportError:
|
except ImportError:
|
||||||
logger.error("error loading emanesh")
|
logger.error("error loading emanesh")
|
||||||
|
|
|
@ -10,11 +10,6 @@ from core.misc import log
|
||||||
|
|
||||||
logger = log.get_logger(__name__)
|
logger = log.get_logger(__name__)
|
||||||
|
|
||||||
try:
|
|
||||||
from emanesh.events import EventService
|
|
||||||
except ImportError:
|
|
||||||
logger.error("error importing emanesh")
|
|
||||||
|
|
||||||
|
|
||||||
class EmaneRfPipeModel(EmaneModel):
|
class EmaneRfPipeModel(EmaneModel):
|
||||||
def __init__(self, session, object_id=None):
|
def __init__(self, session, object_id=None):
|
||||||
|
|
|
@ -10,11 +10,6 @@ from core.misc import log
|
||||||
|
|
||||||
logger = log.get_logger(__name__)
|
logger = log.get_logger(__name__)
|
||||||
|
|
||||||
try:
|
|
||||||
from emanesh.events import EventService
|
|
||||||
except:
|
|
||||||
logger.error("error importing emanesh")
|
|
||||||
|
|
||||||
|
|
||||||
class EmaneTdmaModel(EmaneModel):
|
class EmaneTdmaModel(EmaneModel):
|
||||||
def __init__(self, session, object_id=None):
|
def __init__(self, session, object_id=None):
|
||||||
|
|
|
@ -10,11 +10,6 @@ from core.misc import log
|
||||||
|
|
||||||
logger = log.get_logger(__name__)
|
logger = log.get_logger(__name__)
|
||||||
|
|
||||||
try:
|
|
||||||
from emanesh.events import EventService
|
|
||||||
except ImportError:
|
|
||||||
logger.error("error importing emanesh")
|
|
||||||
|
|
||||||
|
|
||||||
class EmaneUniversalModel(EmaneModel):
|
class EmaneUniversalModel(EmaneModel):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -1054,16 +1054,14 @@ class Session(object):
|
||||||
updown_script = None
|
updown_script = None
|
||||||
|
|
||||||
if net_index == 0:
|
if net_index == 0:
|
||||||
try:
|
updown_script = self.config.get("controlnet_updown_script")
|
||||||
if self.config["controlnet_updown_script"]:
|
if not updown_script:
|
||||||
updown_script = self.config["controlnet_updown_script"]
|
logger.warning("controlnet updown script not configured")
|
||||||
except KeyError:
|
|
||||||
logger.exception("error retreiving controlnet updown script")
|
|
||||||
|
|
||||||
# Check if session option set, overwrite if so
|
# check if session option set, overwrite if so
|
||||||
new_updown_script = getattr(self.options, "controlnet_updown_script", None)
|
options_updown_script = getattr(self.options, "controlnet_updown_script", None)
|
||||||
if new_updown_script:
|
if options_updown_script:
|
||||||
updown_script = new_updown_script
|
updown_script = options_updown_script
|
||||||
|
|
||||||
prefixes = prefix_spec.split()
|
prefixes = prefix_spec.split()
|
||||||
if len(prefixes) > 1:
|
if len(prefixes) > 1:
|
||||||
|
|
|
@ -9,6 +9,8 @@ from core.misc import ipaddress
|
||||||
from core.misc import nodemaps
|
from core.misc import nodemaps
|
||||||
from core.misc import nodeutils
|
from core.misc import nodeutils
|
||||||
from core.netns import nodes
|
from core.netns import nodes
|
||||||
|
from core.services import quagga
|
||||||
|
from core.services import utility
|
||||||
|
|
||||||
|
|
||||||
class Core(object):
|
class Core(object):
|
||||||
|
@ -19,8 +21,12 @@ class Core(object):
|
||||||
self.nodes = {}
|
self.nodes = {}
|
||||||
self.node_ips = {}
|
self.node_ips = {}
|
||||||
|
|
||||||
def create_node(self, name, cls=nodes.CoreNode, objid=None):
|
def create_node(self, name, cls=nodes.CoreNode, objid=None, position=None, services=None):
|
||||||
node = self.session.add_object(cls=cls, name=name, objid=objid)
|
node = self.session.add_object(cls=cls, name=name, objid=objid)
|
||||||
|
if position:
|
||||||
|
node.setposition(*position)
|
||||||
|
if services:
|
||||||
|
self.session.services.addservicestonode(node, "", services)
|
||||||
self.nodes[name] = node
|
self.nodes[name] = node
|
||||||
|
|
||||||
def add_interface(self, network, name):
|
def add_interface(self, network, name):
|
||||||
|
@ -105,6 +111,11 @@ class Core(object):
|
||||||
|
|
||||||
return ptp_node, interface_one, interface_two
|
return ptp_node, interface_one, interface_two
|
||||||
|
|
||||||
|
def set_emane_model(self, emane_node, emane_model):
|
||||||
|
# set the emane model
|
||||||
|
values = emane_model.getdefaultvalues()
|
||||||
|
self.session.emane.setconfig(emane_node.objid, emane_model.name, values)
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture()
|
@pytest.fixture()
|
||||||
def session():
|
def session():
|
||||||
|
@ -123,6 +134,37 @@ def session():
|
||||||
assert not os.path.exists(session_fixture.session_dir)
|
assert not os.path.exists(session_fixture.session_dir)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture()
|
||||||
|
def session_emane():
|
||||||
|
# configure default nodes
|
||||||
|
node_map = nodemaps.CLASSIC_NODES
|
||||||
|
nodeutils.set_node_map(node_map)
|
||||||
|
|
||||||
|
# create and return session
|
||||||
|
session_fixture = Session(1, persistent=True)
|
||||||
|
assert os.path.exists(session_fixture.session_dir)
|
||||||
|
|
||||||
|
# load emane services
|
||||||
|
quagga.load_services()
|
||||||
|
utility.load_services()
|
||||||
|
|
||||||
|
# set location
|
||||||
|
session_fixture.master = True
|
||||||
|
session_fixture.location.setrefgeo(47.57917, -122.13232, 2.00000)
|
||||||
|
session_fixture.location.refscale = 150.0
|
||||||
|
|
||||||
|
# load emane models
|
||||||
|
session_fixture.emane.loadmodels()
|
||||||
|
|
||||||
|
# return session fixture
|
||||||
|
yield session_fixture
|
||||||
|
|
||||||
|
# cleanup
|
||||||
|
print "shutting down session"
|
||||||
|
session_fixture.shutdown()
|
||||||
|
assert not os.path.exists(session_fixture.session_dir)
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope="module")
|
@pytest.fixture(scope="module")
|
||||||
def ip_prefix():
|
def ip_prefix():
|
||||||
return ipaddress.Ipv4Prefix("10.83.0.0/16")
|
return ipaddress.Ipv4Prefix("10.83.0.0/16")
|
||||||
|
@ -131,3 +173,8 @@ def ip_prefix():
|
||||||
@pytest.fixture()
|
@pytest.fixture()
|
||||||
def core(session, ip_prefix):
|
def core(session, ip_prefix):
|
||||||
return Core(session, ip_prefix)
|
return Core(session, ip_prefix)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture()
|
||||||
|
def core_emane(session_emane, ip_prefix):
|
||||||
|
return Core(session_emane, ip_prefix)
|
||||||
|
|
|
@ -7,227 +7,135 @@ from core.emane.commeffect import EmaneCommEffectModel
|
||||||
from core.emane.ieee80211abg import EmaneIeee80211abgModel
|
from core.emane.ieee80211abg import EmaneIeee80211abgModel
|
||||||
from core.emane.nodes import EmaneNode
|
from core.emane.nodes import EmaneNode
|
||||||
from core.emane.rfpipe import EmaneRfPipeModel
|
from core.emane.rfpipe import EmaneRfPipeModel
|
||||||
from core.services import quagga
|
|
||||||
from core.services import utility
|
_EMANE_SERVICES = "zebra|OSPFv3MDR|IPForward"
|
||||||
|
|
||||||
|
|
||||||
class TestGui:
|
class TestGui:
|
||||||
def test_80211(self, core):
|
def test_80211(self, core_emane):
|
||||||
"""
|
"""
|
||||||
Test emane 80211 model.
|
Test emane 80211 model.
|
||||||
|
|
||||||
:param conftest.Core core: core fixture to test with
|
: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
|
# create emane node for networking the core nodes
|
||||||
emane_node = core.session.add_object(name="emane", cls=EmaneNode)
|
emane_node = core_emane.session.add_object(name="emane", cls=EmaneNode)
|
||||||
emane_node.setposition(x=80, y=50)
|
emane_node.setposition(x=80, y=50)
|
||||||
|
|
||||||
# set the emane model
|
# set the emane model
|
||||||
emane_model = EmaneIeee80211abgModel
|
core_emane.set_emane_model(emane_node, EmaneIeee80211abgModel)
|
||||||
values = emane_model.getdefaultvalues()
|
|
||||||
core.session.emane.setconfig(emane_node.objid, emane_model.name, values)
|
|
||||||
|
|
||||||
# create nodes
|
# create nodes
|
||||||
core.create_node("n1", objid=1)
|
core_emane.create_node("n1", objid=1, position=(150, 150), services=_EMANE_SERVICES)
|
||||||
core.create_node("n2", objid=2)
|
core_emane.create_node("n2", objid=2, position=(300, 150), services=_EMANE_SERVICES)
|
||||||
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
|
# add interfaces to nodes
|
||||||
core.add_interface(emane_node, "n1")
|
core_emane.add_interface(emane_node, "n1")
|
||||||
core.add_interface(emane_node, "n2")
|
core_emane.add_interface(emane_node, "n2")
|
||||||
|
|
||||||
# instantiate session
|
# instantiate session
|
||||||
core.session.instantiate()
|
core_emane.session.instantiate()
|
||||||
|
|
||||||
# assert node directories created
|
# assert node directories created
|
||||||
core.assert_nodes()
|
core_emane.assert_nodes()
|
||||||
|
|
||||||
# ping n2 from n1 and assert success
|
# ping n2 from n1 and assert success
|
||||||
status = core.ping("n1", "n2")
|
status = core_emane.ping("n1", "n2")
|
||||||
assert not status
|
assert not status
|
||||||
|
|
||||||
def test_rfpipe(self, core):
|
def test_rfpipe(self, core_emane):
|
||||||
"""
|
"""
|
||||||
Test emane 80211 model.
|
Test emane 80211 model.
|
||||||
|
|
||||||
:param conftest.Core core: core fixture to test with
|
: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
|
# create emane node for networking the core nodes
|
||||||
emane_node = core.session.add_object(name="emane", cls=EmaneNode)
|
emane_node = core_emane.session.add_object(name="emane", cls=EmaneNode)
|
||||||
emane_node.setposition(x=80, y=50)
|
emane_node.setposition(x=80, y=50)
|
||||||
|
|
||||||
# set the emane model
|
# set the emane model
|
||||||
emane_model = EmaneRfPipeModel
|
core_emane.set_emane_model(emane_node, EmaneRfPipeModel)
|
||||||
values = emane_model.getdefaultvalues()
|
|
||||||
core.session.emane.setconfig(emane_node.objid, emane_model.name, values)
|
|
||||||
|
|
||||||
# create nodes
|
# create nodes
|
||||||
core.create_node("n1", objid=1)
|
core_emane.create_node("n1", objid=1, position=(150, 150), services=_EMANE_SERVICES)
|
||||||
core.create_node("n2", objid=2)
|
core_emane.create_node("n2", objid=2, position=(300, 150), services=_EMANE_SERVICES)
|
||||||
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
|
# add interfaces to nodes
|
||||||
core.add_interface(emane_node, "n1")
|
core_emane.add_interface(emane_node, "n1")
|
||||||
core.add_interface(emane_node, "n2")
|
core_emane.add_interface(emane_node, "n2")
|
||||||
|
|
||||||
# instantiate session
|
# instantiate session
|
||||||
core.session.instantiate()
|
core_emane.session.instantiate()
|
||||||
|
|
||||||
# assert node directories created
|
# assert node directories created
|
||||||
core.assert_nodes()
|
core_emane.assert_nodes()
|
||||||
|
|
||||||
# ping n2 from n1 and assert success
|
# ping n2 from n1 and assert success
|
||||||
status = core.ping("n1", "n2")
|
status = core_emane.ping("n1", "n2")
|
||||||
assert not status
|
assert not status
|
||||||
|
|
||||||
def test_commeffect(self, core):
|
def test_commeffect(self, core_emane):
|
||||||
"""
|
"""
|
||||||
Test emane 80211 model.
|
Test emane 80211 model.
|
||||||
|
|
||||||
:param conftest.Core core: core fixture to test with
|
: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
|
# create emane node for networking the core nodes
|
||||||
emane_node = core.session.add_object(name="emane", cls=EmaneNode)
|
emane_node = core_emane.session.add_object(name="emane", cls=EmaneNode)
|
||||||
emane_node.setposition(x=80, y=50)
|
emane_node.setposition(x=80, y=50)
|
||||||
|
|
||||||
# set the emane model
|
# set the emane model
|
||||||
emane_model = EmaneCommEffectModel
|
core_emane.set_emane_model(emane_node, EmaneCommEffectModel)
|
||||||
values = emane_model.getdefaultvalues()
|
|
||||||
core.session.emane.setconfig(emane_node.objid, emane_model.name, values)
|
|
||||||
|
|
||||||
# create nodes
|
# create nodes
|
||||||
core.create_node("n1", objid=1)
|
core_emane.create_node("n1", objid=1, position=(150, 150), services=_EMANE_SERVICES)
|
||||||
core.create_node("n2", objid=2)
|
core_emane.create_node("n2", objid=2, position=(300, 150), services=_EMANE_SERVICES)
|
||||||
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
|
# add interfaces to nodes
|
||||||
core.add_interface(emane_node, "n1")
|
core_emane.add_interface(emane_node, "n1")
|
||||||
core.add_interface(emane_node, "n2")
|
core_emane.add_interface(emane_node, "n2")
|
||||||
|
|
||||||
# instantiate session
|
# instantiate session
|
||||||
core.session.instantiate()
|
core_emane.session.instantiate()
|
||||||
|
|
||||||
# assert node directories created
|
# assert node directories created
|
||||||
core.assert_nodes()
|
core_emane.assert_nodes()
|
||||||
|
|
||||||
# ping n2 from n1 and assert success
|
# ping n2 from n1 and assert success
|
||||||
status = core.ping("n1", "n2")
|
status = core_emane.ping("n1", "n2")
|
||||||
assert not status
|
assert not status
|
||||||
|
|
||||||
def test_bypass(self, core):
|
def test_bypass(self, core_emane):
|
||||||
"""
|
"""
|
||||||
Test emane 80211 model.
|
Test emane 80211 model.
|
||||||
|
|
||||||
:param conftest.Core core: core fixture to test with
|
: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
|
# create emane node for networking the core nodes
|
||||||
emane_node = core.session.add_object(name="emane", cls=EmaneNode)
|
emane_node = core_emane.session.add_object(name="emane", cls=EmaneNode)
|
||||||
emane_node.setposition(x=80, y=50)
|
emane_node.setposition(x=80, y=50)
|
||||||
|
|
||||||
# set the emane model
|
# set the emane model
|
||||||
emane_model = EmaneBypassModel
|
core_emane.set_emane_model(emane_node, EmaneBypassModel)
|
||||||
values = emane_model.getdefaultvalues()
|
|
||||||
core.session.emane.setconfig(emane_node.objid, emane_model.name, values)
|
|
||||||
|
|
||||||
# create nodes
|
# create nodes
|
||||||
core.create_node("n1", objid=1)
|
core_emane.create_node("n1", objid=1, position=(150, 150), services=_EMANE_SERVICES)
|
||||||
core.create_node("n2", objid=2)
|
core_emane.create_node("n2", objid=2, position=(300, 150), services=_EMANE_SERVICES)
|
||||||
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
|
# add interfaces to nodes
|
||||||
core.add_interface(emane_node, "n1")
|
core_emane.add_interface(emane_node, "n1")
|
||||||
core.add_interface(emane_node, "n2")
|
core_emane.add_interface(emane_node, "n2")
|
||||||
|
|
||||||
# instantiate session
|
# instantiate session
|
||||||
core.session.instantiate()
|
core_emane.session.instantiate()
|
||||||
|
|
||||||
# assert node directories created
|
# assert node directories created
|
||||||
core.assert_nodes()
|
core_emane.assert_nodes()
|
||||||
|
|
||||||
# ping n2 from n1 and assert success
|
# ping n2 from n1 and assert success
|
||||||
status = core.ping("n1", "n2")
|
status = core_emane.ping("n1", "n2")
|
||||||
assert not status
|
assert not status
|
||||||
|
|
Loading…
Add table
Reference in a new issue