aboutsummaryrefslogtreecommitdiffstats
path: root/meta/lib/oeqa
diff options
context:
space:
mode:
authorAníbal Limón <limon.anibal@gmail.com>2016-02-21 14:40:20 -0600
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-02-28 11:32:40 +0000
commitbe7f5036a7c86fe70d43526df529bc467a9cf7d9 (patch)
tree55be464d30bc4cb5dc580c7daaca7099a04724f7 /meta/lib/oeqa
parenta75944a63482597be88ff0f3ce55025647b78e2c (diff)
downloadopenembedded-core-contrib-be7f5036a7c86fe70d43526df529bc467a9cf7d9.tar.gz
oeqa/sdkext: Add sdk_update.SDKUpdateTest class.
The SDKUpdateTest class test devtool sdk-update mechanism inside eSDK. The SDKUpdateTest class search for new sdk if not found uses the main one then it publish the eSDK into known folder inside work and it starts a web server for serve the eSDK. Finally it executes sdk-update over http, the local test is commented due to bug [1]. [1] https://bugzilla.yoctoproject.org/show_bug.cgi?id=9043 [YOCTO #9089] Signed-off-by: Aníbal Limón <limon.anibal@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
Diffstat (limited to 'meta/lib/oeqa')
-rw-r--r--meta/lib/oeqa/sdkext/sdk_update.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/meta/lib/oeqa/sdkext/sdk_update.py b/meta/lib/oeqa/sdkext/sdk_update.py
new file mode 100644
index 0000000000..16f5b10d59
--- /dev/null
+++ b/meta/lib/oeqa/sdkext/sdk_update.py
@@ -0,0 +1,39 @@
+import os
+import shutil
+import subprocess
+
+from oeqa.oetest import oeSDKExtTest
+from oeqa.utils.httpserver import HTTPService
+
+class SdkUpdateTest(oeSDKExtTest):
+
+ @classmethod
+ def setUpClass(self):
+ self.publish_dir = os.path.join(self.tc.sdktestdir, 'esdk_publish')
+ if os.path.exists(self.publish_dir):
+ shutil.rmtree(self.publish_dir)
+ os.mkdir(self.publish_dir)
+
+ tcname_new = self.tc.d.expand(
+ "${SDK_DEPLOY}/${TOOLCHAINEXT_OUTPUTNAME}-new.sh")
+ if not os.path.exists(tcname_new):
+ tcname_new = self.tc.tcname
+
+ cmd = 'oe-publish-sdk %s %s' % (tcname_new, self.publish_dir)
+ subprocess.check_output(cmd, shell=True)
+
+ self.http_service = HTTPService(self.publish_dir)
+ self.http_service.start()
+
+ self.http_url = "http://127.0.0.1:%d" % self.http_service.port
+
+ def test_sdk_update_http(self):
+ output = self._run("devtool sdk-update \"%s\"" % self.http_url)
+
+# def test_sdk_update_local(self):
+# output = self._run("devtool sdk-update \"%s\"" % self.publish_dir)
+
+ @classmethod
+ def tearDownClass(self):
+ self.http_service.stop()
+ shutil.rmtree(self.publish_dir)