Update PlanetLab's NS3Dependency to work with ns 3.11
[nepi.git] / test / testbeds / planetlab / execute.py
index 07f1512..9768389 100755 (executable)
@@ -20,9 +20,12 @@ class PlanetLabExecuteTestCase(unittest.TestCase):
     
     host1 = "nepi1.pl.sophia.inria.fr"
     host2 = "nepi2.pl.sophia.inria.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:
@@ -49,6 +52,8 @@ class PlanetLabExecuteTestCase(unittest.TestCase):
         instance.defer_configure("authUser", pl_user)
         instance.defer_configure("authPass", pl_pwd)
         instance.defer_configure("plcHost", plchost)
+        instance.defer_configure("tapPortBase", self.port_base)
+        instance.defer_configure("p2pDeployment", False) # it's interactive, we don't want it in tests
         
         return instance
 
@@ -210,7 +215,6 @@ FIONREAD = 0x[0-9a-fA-F]{8}.*
         
         instance.defer_create(2, "Node")
         instance.defer_create_set(2, "hostname", self.host1)
-        instance.defer_create_set(2, "emulation", True) # require emulation
         instance.defer_create(3, "NodeInterface")
         instance.defer_connect(2, "devs", 3, "node")
         instance.defer_create(4, "Internet")
@@ -259,7 +263,6 @@ echo 'OKIDOKI'
         
         instance.defer_create(2, "Node")
         instance.defer_create_set(2, "hostname", self.host1)
-        instance.defer_create_set(2, "emulation", True) # require emulation
         instance.defer_create(3, "NodeInterface")
         instance.defer_connect(2, "devs", 3, "node")
         instance.defer_create(4, "Internet")
@@ -311,46 +314,14 @@ echo 'OKIDOKI'
 
         self.assertTrue(netpipe_stats, "Unavailable netpipe stats")
 
-    @test_util.skipUnless(test_util.pl_auth() is not None, "Test requires PlanetLab authentication info (PL_USER and PL_PASS environment variables)")
-    def test_tun_emulation_requirement(self):
-        instance = self.make_instance()
-        
-        instance.defer_create(2, "Node")
-        instance.defer_create_set(2, "hostname", self.host1)
-        instance.defer_create(3, "NodeInterface")
-        instance.defer_connect(2, "devs", 3, "node")
-        instance.defer_create(4, "Internet")
-        instance.defer_connect(3, "inet", 4, "devs")
-        instance.defer_create(5, "TunInterface")
-        instance.defer_add_address(5, "192.168.2.2", 24, False)
-        instance.defer_connect(2, "devs", 5, "node")
-        instance.defer_create(6, "Application")
-        instance.defer_create_set(6, "command", "false")
-        instance.defer_add_trace(6, "stdout")
-        instance.defer_add_trace(6, "stderr")
-        instance.defer_connect(6, "node", 2, "apps")
-
-        try:
-            instance.do_setup()
-            instance.do_create()
-            instance.do_connect_init()
-            instance.do_connect_compl()
-            instance.do_preconfigure()
-            instance.do_configure()
-            self.fail("Usage of TUN without emulation should fail")
-        except Exception,e:
-            pass
-
     @test_util.skipUnless(test_util.pl_auth() is not None, "Test requires PlanetLab authentication info (PL_USER and PL_PASS environment variables)")
     def _pingtest(self, TunClass, ConnectionProto):
         instance = self.make_instance()
         
         instance.defer_create(2, "Node")
         instance.defer_create_set(2, "hostname", self.host1)
-        instance.defer_create_set(2, "emulation", True) # require emulation
         instance.defer_create(3, "Node")
         instance.defer_create_set(3, "hostname", self.host2)
-        instance.defer_create_set(3, "emulation", True) # require emulation
         instance.defer_create(4, "NodeInterface")
         instance.defer_connect(2, "devs", 4, "node")
         instance.defer_create(5, "Internet")
@@ -485,7 +456,7 @@ echo 'OKIDOKI'
         instance.defer_connect(6, "node", 2, "deps")
         instance.defer_create(12, "Application")
         instance.defer_connect(12, "node", 2, "apps")
-        instance.defer_create_set(12, "command", "python -c 'import nepi.testbeds.ns3.execute ; tb = nepi.testbeds.ns3.execute.TestbedController(\"3_9_RC3\") ; mod = tb._load_ns3_module()'")
+        instance.defer_create_set(12, "command", "python -c 'import nepi.testbeds.ns3.execute ; tb = nepi.testbeds.ns3.execute.TestbedController() ; mod = tb._configure_ns3_module()'")
         instance.defer_add_trace(12, "stderr")
 
         try: