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]

(From OE-Core rev: be7f5036a7c86fe70d43526df529bc467a9cf7d9)

Signed-off-by: Aníbal Limón <limon.anibal@gmail.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Aníbal Limón
2016-02-21 14:40:20 -06:00
committed by Richard Purdie
parent 738bd1a640
commit c7e5a38d23

View File

@@ -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)