Added TCP-handshake for TunChannel and tun_connect.py
[nepi.git] / test / testbeds / planetlab / integration_ns3.py
index 459c773..c79e98f 100755 (executable)
@@ -24,8 +24,11 @@ class PlanetLabCrossIntegrationTestCase(unittest.TestCase):
     host3 = "nepi3.pl.sophia.inria.fr"
     host4 = "nepi5.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:
@@ -53,6 +56,9 @@ class PlanetLabCrossIntegrationTestCase(unittest.TestCase):
         pl_desc.set_attribute_value("authUser", pl_user)
         pl_desc.set_attribute_value("authPass", pl_pwd)
         pl_desc.set_attribute_value("plcHost", plchost)
+        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("dedicatedSlice", True)
         
         return pl_desc, exp_desc
     
@@ -154,8 +160,16 @@ class PlanetLabCrossIntegrationTestCase(unittest.TestCase):
             controller.start()
             # just test that it starts...
         finally:
-            controller.stop()
-            controller.shutdown()
+            try:
+                controller.stop()
+            except:
+                import traceback
+                traceback.print_exc()
+            try:
+                controller.shutdown()
+            except:
+                import traceback
+                traceback.print_exc()
 
     @test_util.skipUnless(test_util.pl_auth() is not None, 
         "Test requires PlanetLab authentication info (PL_USER and PL_PASS environment variables)")
@@ -179,8 +193,8 @@ class PlanetLabCrossIntegrationTestCase(unittest.TestCase):
         ns1.connector("protos").connect(ipv41.connector("node"))
         ns1.connector("protos").connect(arp1.connector("node"))
         ns1.connector("protos").connect(icmp1.connector("node"))
-        ns1if = ns3_desc.create("ns3::FileDescriptorNetDevice")
-        ns1if.enable_trace("FileDescriptorPcapTrace")
+        ns1if = ns3_desc.create("ns3::FdNetDevice")
+        ns1if.enable_trace("FdPcapTrace")
         ns1if.set_attribute_value("label", "ns1if")
         ns1.connector("devs").connect(ns1if.connector("node"))
         tap1.connector("fd->").connect(ns1if.connector("->fd"))
@@ -215,8 +229,16 @@ class PlanetLabCrossIntegrationTestCase(unittest.TestCase):
             tap_trace = controller.trace(tap1.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),
@@ -258,8 +280,8 @@ class PlanetLabCrossIntegrationTestCase(unittest.TestCase):
         ns1.connector("protos").connect(ipv41.connector("node"))
         ns1.connector("protos").connect(arp1.connector("node"))
         ns1.connector("protos").connect(icmp1.connector("node"))
-        ns1if = ns3_desc.create("ns3::FileDescriptorNetDevice")
-        ns1if.enable_trace("FileDescriptorPcapTrace")
+        ns1if = ns3_desc.create("ns3::FdNetDevice")
+        ns1if.enable_trace("FdPcapTrace")
         ns1if.set_attribute_value("label", "ns1if")
         ns1.connector("devs").connect(ns1if.connector("node"))
         tap1.connector("fd->").connect(ns1if.connector("->fd"))
@@ -293,8 +315,16 @@ class PlanetLabCrossIntegrationTestCase(unittest.TestCase):
             tap_trace = controller.trace(tap1.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
         sent = 0
@@ -363,8 +393,8 @@ class PlanetLabCrossIntegrationTestCase(unittest.TestCase):
         ns1.connector("protos").connect(ipv41.connector("node"))
         ns1.connector("protos").connect(arp1.connector("node"))
         ns1.connector("protos").connect(icmp1.connector("node"))
-        ns1if = ns3_desc.create("ns3::FileDescriptorNetDevice")
-        ns1if.enable_trace("FileDescriptorPcapTrace")
+        ns1if = ns3_desc.create("ns3::FdNetDevice")
+        ns1if.enable_trace("FdPcapTrace")
         ns1if.set_attribute_value("label", "ns1if")
         ns1.connector("devs").connect(ns1if.connector("node"))
         tap0.connector("fd->").connect(ns1if.connector("->fd"))
@@ -403,8 +433,16 @@ class PlanetLabCrossIntegrationTestCase(unittest.TestCase):
             tap0_trace = controller.trace(tap0.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
         sent = 0