From 4ff1c8ddbadfbcaef969fb97fb4caab92d4fa519 Mon Sep 17 00:00:00 2001 From: Francisco Pedraza Date: Tue, 17 Jan 2017 20:09:02 -0600 Subject: oeqa/selftest: Adds test case for sdk-update eSDK 1. Test case adds perl recipe before build eSDK. 2. After this added recipe, the script verifies the update: ${SDK_DEPLOY}/${TOOLCHAINEXT_OUTPUTNAME}.sh oe-publish-sdk [esdk] [path-to-http] CORE_IMAGE_EXTRA_INSTALL = "perl" bitbake -c populate-sdk-ext [some-image] devtool sdk-update This should fix [YOCTO #9369] (From OE-Core rev: 21bd406bf89e9ceafe1a807877406be817cacca6) (From OE-Core rev: 7824ca273e7e4b25d4efe5461c0402833f535d06) Signed-off-by: Francisco Pedraza Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- meta/lib/oeqa/selftest/eSDK.py | 42 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 36 insertions(+), 6 deletions(-) (limited to 'meta/lib/oeqa') diff --git a/meta/lib/oeqa/selftest/eSDK.py b/meta/lib/oeqa/selftest/eSDK.py index b43a452ac1..c95ca6deb2 100644 --- a/meta/lib/oeqa/selftest/eSDK.py +++ b/meta/lib/oeqa/selftest/eSDK.py @@ -51,6 +51,29 @@ class oeSDKExtSelfTest(oeSelfTest): toolchain_name = get_bb_var('TOOLCHAINEXT_OUTPUTNAME', pn_task) return os.path.join(sdk_deploy, toolchain_name + '.sh') + @staticmethod + def update_configuration(cls, image, tmpdir_eSDKQA, env_eSDK, ext_sdk_path): + sstate_dir = os.path.join(os.environ['BUILDDIR'], 'sstate-cache') + cls.http_service = HTTPService(sstate_dir) + cls.http_service.start() + cls.http_url = "http://127.0.0.1:%d" % cls.http_service.port + + oeSDKExtSelfTest.generate_eSDK(cls.image) + + 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) + + sstate_config=""" +SDK_LOCAL_CONF_WHITELIST = "SSTATE_MIRRORS" +SSTATE_MIRRORS = "file://.* http://%s/PATH" +CORE_IMAGE_EXTRA_INSTALL = "perl" + """ % cls.http_url + + with open(os.path.join(cls.tmpdir_eSDKQA, 'conf', 'local.conf'), 'a+') as f: + f.write(sstate_config) + @classmethod def setUpClass(cls): @@ -59,16 +82,16 @@ class oeSDKExtSelfTest(oeSelfTest): cls.http_service = HTTPService(sstate_dir) cls.http_service.start() - http_url = "127.0.0.1:%d" % cls.http_service.port + cls.http_url = "http://127.0.0.1:%d" % cls.http_service.port - image = 'core-image-minimal' + cls.image = 'core-image-minimal' cls.tmpdir_eSDKQA = tempfile.mkdtemp(prefix='eSDKQA') - oeSDKExtSelfTest.generate_eSDK(image) + oeSDKExtSelfTest.generate_eSDK(cls.image) # Install eSDK - ext_sdk_path = oeSDKExtSelfTest.get_eSDK_toolchain(image) - runCmd("%s -y -d \"%s\"" % (ext_sdk_path, cls.tmpdir_eSDKQA)) + 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) @@ -76,7 +99,7 @@ class oeSDKExtSelfTest(oeSelfTest): sstate_config=""" SDK_LOCAL_CONF_WHITELIST = "SSTATE_MIRRORS" SSTATE_MIRRORS = "file://.* http://%s/PATH" - """ % http_url + """ % cls.http_url with open(os.path.join(cls.tmpdir_eSDKQA, 'conf', 'local.conf'), 'a+') as f: f.write(sstate_config) @@ -99,5 +122,12 @@ SSTATE_MIRRORS = "file://.* http://%s/PATH" cmd = "devtool build-image %s" % image oeSDKExtSelfTest.run_esdk_cmd(self.env_eSDK, self.tmpdir_eSDKQA, cmd) + @testcase(1567) + def test_sdk_update_http(self): + cmd = "devtool sdk-update %s" % self.http_url + oeSDKExtSelfTest.update_configuration(self, self.image, self.tmpdir_eSDKQA, self.env_eSDK, self.ext_sdk_path) + oeSDKExtSelfTest.run_esdk_cmd(self.env_eSDK, self.tmpdir_eSDKQA, cmd) + self.http_service.stop() + if __name__ == '__main__': unittest.main() -- cgit v1.2.3-54-g00ecf