From 00e31dabdd7900adbe3adfa223ab49b090ff8aea Mon Sep 17 00:00:00 2001 From: Claudio-Daniel Freire Date: Thu, 18 Aug 2011 17:17:12 +0200 Subject: [PATCH] Make sure tests clean up after them, by setting dedicatedSlice=True and by trapping exceptions in shutdown. --- test/testbeds/planetlab/integration.py | 33 +++++++++++-- test/testbeds/planetlab/integration_cross.py | 14 +++++- test/testbeds/planetlab/integration_multi.py | 14 +++++- test/testbeds/planetlab/integration_ns3.py | 49 ++++++++++++++++---- 4 files changed, 94 insertions(+), 16 deletions(-) diff --git a/test/testbeds/planetlab/integration.py b/test/testbeds/planetlab/integration.py index 3c890861..d59e9598 100755 --- a/test/testbeds/planetlab/integration.py +++ b/test/testbeds/planetlab/integration.py @@ -14,6 +14,7 @@ import time import unittest import re import sys +import logging class PlanetLabIntegrationTestCase(unittest.TestCase): testbed_id = "planetlab" @@ -59,6 +60,8 @@ class PlanetLabIntegrationTestCase(unittest.TestCase): 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) + #pl_desc.set_attribute_value("plLogLevel", "DEBUG") return pl_desc, exp_desc @@ -114,8 +117,16 @@ class PlanetLabIntegrationTestCase(unittest.TestCase): "Unexpected trace:\n" + ping_result) 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)") @test_util.skipUnless(os.environ.get('NEPI_FULL_TESTS','').lower() in ('1','yes','true','on'), @@ -185,8 +196,16 @@ FIONREAD = 0x[0-9a-fA-F]{8}.* "Unexpected trace:\n" + build_result) 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)") def test_simple(self): @@ -199,6 +218,7 @@ FIONREAD = 0x[0-9a-fA-F]{8}.* access_config = proxy.AccessConfiguration({ DC.DEPLOYMENT_MODE : DC.MODE_DAEMON, DC.ROOT_DIRECTORY : self.root_dir, + DC.LOG_LEVEL : DC.DEBUG_LEVEL, }) self._test_simple( @@ -316,6 +336,10 @@ FIONREAD = 0x[0-9a-fA-F]{8}.* if controller is not None: try: controller.stop() + except: + import traceback + traceback.print_exc() + try: controller.shutdown() except: import traceback @@ -332,6 +356,7 @@ FIONREAD = 0x[0-9a-fA-F]{8}.* access_config = proxy.AccessConfiguration({ DC.DEPLOYMENT_MODE : DC.MODE_DAEMON, DC.ROOT_DIRECTORY : self.root_dir, + DC.LOG_LEVEL : DC.DEBUG_LEVEL, }) self._test_recover( diff --git a/test/testbeds/planetlab/integration_cross.py b/test/testbeds/planetlab/integration_cross.py index d790ea37..50d0ed9c 100755 --- a/test/testbeds/planetlab/integration_cross.py +++ b/test/testbeds/planetlab/integration_cross.py @@ -68,6 +68,7 @@ class PlanetLabMultiIntegrationTestCase(unittest.TestCase): 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("dedicatedSlice", True) pl_desc2 = exp_desc.add_testbed_description(pl_provider) pl_desc2.set_attribute_value("homeDirectory", self.root_dir+"v2") @@ -78,6 +79,7 @@ class PlanetLabMultiIntegrationTestCase(unittest.TestCase): 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("dedicatedSlice", True) return pl_desc, pl_desc2, exp_desc @@ -199,8 +201,16 @@ class PlanetLabMultiIntegrationTestCase(unittest.TestCase): 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), diff --git a/test/testbeds/planetlab/integration_multi.py b/test/testbeds/planetlab/integration_multi.py index eaaef3eb..7ecbcef3 100755 --- a/test/testbeds/planetlab/integration_multi.py +++ b/test/testbeds/planetlab/integration_multi.py @@ -68,6 +68,7 @@ class PlanetLabMultiIntegrationTestCase(unittest.TestCase): 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("dedicatedSlice", True) pl_desc2 = exp_desc.add_testbed_description(pl_provider) pl_desc2.set_attribute_value("homeDirectory", self.root_dir+"v2") @@ -78,6 +79,7 @@ class PlanetLabMultiIntegrationTestCase(unittest.TestCase): 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("dedicatedSlice", True) return pl_desc, pl_desc2, exp_desc @@ -156,8 +158,16 @@ class PlanetLabMultiIntegrationTestCase(unittest.TestCase): finally: if controller is not None: - 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), diff --git a/test/testbeds/planetlab/integration_ns3.py b/test/testbeds/planetlab/integration_ns3.py index dfb39d83..d1d86950 100755 --- a/test/testbeds/planetlab/integration_ns3.py +++ b/test/testbeds/planetlab/integration_ns3.py @@ -58,6 +58,7 @@ class PlanetLabCrossIntegrationTestCase(unittest.TestCase): 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 @@ -159,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)") @@ -220,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), @@ -298,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 @@ -408,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 -- 2.47.0