from nepi.util import proxy
from nepi.util.constants import DeploymentConfiguration as DC, ATTR_NEPI_TESTBED_ENVIRONMENT_SETUP
import os
+import re
import shutil
import tempfile
import test_util
import time
import unittest
-import re
class PlanetLabMultiIntegrationTestCase(unittest.TestCase):
testbed_id = "planetlab"
host1pl2 = "planetlab1.utt.fr"
host2pl2 = "planetlab2.utt.fr"
+ port_base = 2000 + (os.getpid() % 1000) * 13
+
def setUp(self):
self.root_dir = tempfile.mkdtemp()
+ self.__class__.port_base = self.port_base + 100
def tearDown(self):
try:
pl_desc.set_attribute_value("authUser", pl_user)
pl_desc.set_attribute_value("authPass", pl_pwd)
pl_desc.set_attribute_value("plcHost", plchost1)
+ pl_desc.set_attribute_value("tapPortBase", self.port_base)
+ pl_desc.set_attribute_value("p2pDeployment", False) # it's interactive, we don't want it in tests
+ pl_desc.set_attribute_value("cleanProc", True)
pl_desc2 = exp_desc.add_testbed_description(pl_provider)
pl_desc2.set_attribute_value("homeDirectory", self.root_dir+"v2")
pl_desc2.set_attribute_value("authUser", pl_user)
pl_desc2.set_attribute_value("authPass", pl_pwd)
pl_desc2.set_attribute_value("plcHost", plchost2)
+ pl_desc2.set_attribute_value("tapPortBase", self.port_base+500)
+ pl_desc2.set_attribute_value("p2pDeployment", False) # it's interactive, we don't want it in tests
+ pl_desc2.set_attribute_value("cleanProc", True)
return pl_desc, pl_desc2, exp_desc
ns1.connector("protos").connect(ipv41.connector("node"))
ns1.connector("protos").connect(arp1.connector("node"))
ns1.connector("protos").connect(icmp1.connector("node"))
- ns1if = ns3.create("ns3::FileDescriptorNetDevice")
- ns1if.enable_trace("FileDescriptorPcapTrace")
+ ns1if = ns3.create("ns3::FdNetDevice")
+ ns1if.enable_trace("FdPcapTrace")
ns1if.set_attribute_value("label", "ns1if")
ns1tc = ns3.create("ns3::Nepi::TunChannel")
ns1.connector("devs").connect(ns1if.connector("node"))
ping_result = controller.trace(ping.guid, "stdout")
tap2_trace = controller.trace(tap2.guid, "packets")
finally:
- controller.stop()
- controller.shutdown()
+ try:
+ controller.stop()
+ except:
+ import traceback
+ traceback.print_exc()
+ try:
+ controller.shutdown()
+ except:
+ import traceback
+ traceback.print_exc()
# asserts at the end, to make sure there's proper cleanup
self.assertTrue(re.match(comp_result, ping_result, re.MULTILINE),