[OE-core] [PATCH 4/4] oeqa/sdkext: Add sdk_update.SDKUpdateTest class.

Randy Witt randy.e.witt at linux.intel.com
Mon Feb 22 16:18:48 UTC 2016


On 02/22/2016 07:03 AM, Aníbal Limón wrote:
> From: Aníbal Limón <limon.anibal at gmail.com>
>
> 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 at gmail.com>
> ---
>   meta/lib/oeqa/sdkext/sdk_update.py | 39 ++++++++++++++++++++++++++++++++++++++
>   1 file changed, 39 insertions(+)
>   create mode 100644 meta/lib/oeqa/sdkext/sdk_update.py
>
> diff --git a/meta/lib/oeqa/sdkext/sdk_update.py b/meta/lib/oeqa/sdkext/sdk_update.py
> new file mode 100644
> index 0000000..16f5b10
> --- /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()

I think Paul and I briefly mentioned it, but SimpleHTTPServer fails as an sstate 
mirror if enough fetchers run. We think it was because of a limit on the number 
of simultaneous connections. So I would expect this to fail for instance if all 
packages were updated.

But really we shouldn't care too much about the sstate updating part, and more 
about the layer updating etc. Ideally this test would check to make sure the 
local sdk now matches the remote.

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




More information about the Openembedded-core mailing list