diff options
Diffstat (limited to 'meta/lib/oeqa/selftest/eSDK.py')
-rw-r--r-- | meta/lib/oeqa/selftest/eSDK.py | 46 |
1 files changed, 25 insertions, 21 deletions
diff --git a/meta/lib/oeqa/selftest/eSDK.py b/meta/lib/oeqa/selftest/eSDK.py index ee1ca6a4ec..b68e997ba9 100644 --- a/meta/lib/oeqa/selftest/eSDK.py +++ b/meta/lib/oeqa/selftest/eSDK.py @@ -64,7 +64,7 @@ class oeSDKExtSelfTest(oeSelfTest): runCmd("%s -y -d \"%s\"" % (cls.ext_sdk_path, cls.tmpdir_eSDKQA)) cls.env_eSDK = oeSDKExtSelfTest.get_esdk_environment('', cls.tmpdir_eSDKQA) - + sstate_config=""" SDK_LOCAL_CONF_WHITELIST = "SSTATE_MIRRORS" SSTATE_MIRRORS = "file://.* http://%s/PATH" @@ -73,37 +73,41 @@ CORE_IMAGE_EXTRA_INSTALL = "perl" with open(os.path.join(cls.tmpdir_eSDKQA, 'conf', 'local.conf'), 'a+') as f: f.write(sstate_config) - @classmethod def setUpClass(cls): - # Start to serve sstate dir - sstate_dir = get_bb_var('SSTATE_DIR') - cls.http_service = HTTPService(sstate_dir) - cls.http_service.start() + # If there is an exception in setUpClass it will not run tearDownClass + # method and it leaves HTTP server running forever, so we need to be + # sure tearDownClass is run. + try: + cls.tmpdir_eSDKQA = tempfile.mkdtemp(prefix='eSDKQA') - cls.http_url = "http://127.0.0.1:%d" % cls.http_service.port - - cls.image = 'core-image-minimal' + # Start to serve sstate dir + sstate_dir = get_bb_var('SSTATE_DIR') + cls.http_service = HTTPService(sstate_dir) + cls.http_url = "http://127.0.0.1:%d" % cls.http_service.port + cls.http_service.start() - cls.tmpdir_eSDKQA = tempfile.mkdtemp(prefix='eSDKQA') - oeSDKExtSelfTest.generate_eSDK(cls.image) + cls.image = 'core-image-minimal' + oeSDKExtSelfTest.generate_eSDK(cls.image) - # Install eSDK - cls.ext_sdk_path = oeSDKExtSelfTest.get_eSDK_toolchain(cls.image) - runCmd("%s -y -d \"%s\"" % (cls.ext_sdk_path, cls.tmpdir_eSDKQA)) + # Install eSDK + cls.ext_sdk_path = oeSDKExtSelfTest.get_eSDK_toolchain(cls.image) + runCmd("%s -y -d \"%s\"" % (cls.ext_sdk_path, cls.tmpdir_eSDKQA)) - cls.env_eSDK = oeSDKExtSelfTest.get_esdk_environment('', cls.tmpdir_eSDKQA) + cls.env_eSDK = oeSDKExtSelfTest.get_esdk_environment('', cls.tmpdir_eSDKQA) - # Configure eSDK to use sstate mirror from poky - sstate_config=""" + # Configure eSDK to use sstate mirror from poky + sstate_config=""" SDK_LOCAL_CONF_WHITELIST = "SSTATE_MIRRORS" SSTATE_MIRRORS = "file://.* http://%s/PATH" - """ % cls.http_url - with open(os.path.join(cls.tmpdir_eSDKQA, 'conf', 'local.conf'), 'a+') as f: - f.write(sstate_config) + """ % cls.http_url + with open(os.path.join(cls.tmpdir_eSDKQA, 'conf', 'local.conf'), 'a+') as f: + f.write(sstate_config) + except: + cls.tearDownClass() + raise - @classmethod def tearDownClass(cls): shutil.rmtree(cls.tmpdir_eSDKQA) |