[gnome-continuous-yocto/gnomeostree-3.28-rocko: 4762/8267] selftest/eSDK.py: Cleanup when there is an error in setUpClass
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-continuous-yocto/gnomeostree-3.28-rocko: 4762/8267] selftest/eSDK.py: Cleanup when there is an error in setUpClass
- Date: Sun, 17 Dec 2017 02:29:29 +0000 (UTC)
commit 01be63828c2d88ca10524716b357a73023743443
Author: Mariano Lopez <mariano lopez linux intel com>
Date: Wed Feb 22 13:12:55 2017 +0000
selftest/eSDK.py: Cleanup when there is an error in setUpClass
Lately autobuilders are experiencing hangs with selftest,
it seems it is cause if an error happens in setUpClass
method of oeSDKExtSelfTest class because HTTP server
keeps running in background.
This patch will ensure tearDownClass will be run if there
is an error in setUpClass.
(From OE-Core rev: eb1383949f76c6eb36f86c051057f761a71016a3)
Signed-off-by: Mariano Lopez <mariano lopez linux intel com>
Signed-off-by: Ross Burton <ross burton intel com>
Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>
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 ee1ca6a..b68e997 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)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]