From: Jose Perez Carranza <[email protected]> testsdkest' suite is not working properly when using pre-built artifacts downloaded from AutoBuilder, some updates are applied as follows:
- testsdk.bbclass: add functionally to override the <toolchain>.data.json file with the paths of the host were the test are being executed instead of the the paths of the Auto Builder. - devtool.py: add support to install libxml2 from the source as AutoBuilder artifacts have a minimal SDK tools and libraries. [YOCTO #11963] (From OE-Core rev: 7f10c5118793da6ded59ae6e60e796152dbd7ca3) Signed-off-by: Jose Perez Carranza <[email protected]> --- meta/classes/testsdk.bbclass | 25 +++++++++++++++++++++---- meta/lib/oeqa/sdkext/cases/devtool.py | 2 +- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/meta/classes/testsdk.bbclass b/meta/classes/testsdk.bbclass index 6b51a33db2..2d803e5202 100644 --- a/meta/classes/testsdk.bbclass +++ b/meta/classes/testsdk.bbclass @@ -14,6 +14,9 @@ # # where "<image-name>" is an image like core-image-sato. + +TESTSDK_UPDATE_VARS ?= "DL_DIR WORKDIR DEPLOY_DIR SDK_DEPLOY COMPONENTS_DIR TOOLCHAINEXT_OUTPUTNAME PKGDATA_DIR" + def testsdk_main(d): import os import subprocess @@ -92,6 +95,7 @@ do_testsdk[nostamp] = "1" def testsdkext_main(d): import os import json + from oeqa.core.utils.misc import updateTestData import subprocess import logging @@ -99,6 +103,21 @@ def testsdkext_main(d): from oeqa.utils import avoid_paths_in_environ, make_logger_bitbake_compatible, subprocesstweak from oeqa.sdkext.context import OESDKExtTestContext, OESDKExtTestContextExecutor + toolchain_name = ("%s/%s" % (d.getVar('SDK_DEPLOY'), + d.getVar('TOOLCHAINEXT_OUTPUTNAME'))) + + tdname = "%s.testdata.json" % toolchain_name + + try: + test_data = json.load(open(tdname, "r")) + except (FileNotFoundError) as err: + bb.fatal('File %s Not Found. Have you built the image with INHERIT+="testsdkext" ' \ + 'in the conf/local.conf or downlaoded the pre-built from the AB?' % tdname) + + # Some variables need to be updated (mostly paths) with the + # ones of the current environment because some tests use them. + updateTestData(d, test_data, d.getVar('TESTSDK_UPDATE_VARS').split()) + bb.event.enable_threadlock() pn = d.getVar("PN") @@ -118,10 +137,8 @@ def testsdkext_main(d): tcname = d.expand("${SDK_DEPLOY}/${TOOLCHAINEXT_OUTPUTNAME}.sh") if not os.path.exists(tcname): bb.fatal("The toolchain ext %s is not built. Build it before running the" \ - " tests: 'bitbake <image> -c populate_sdk_ext' ." % tcname) - - tdname = d.expand("${SDK_DEPLOY}/${TOOLCHAINEXT_OUTPUTNAME}.testdata.json") - test_data = json.load(open(tdname, "r")) + " tests: 'bitbake <image> -c populate_sdk_ext' . or donwload the" \ + " pre-built form the AB" % tcname) target_pkg_manifest = OESDKExtTestContextExecutor._load_manifest( d.expand("${SDK_DEPLOY}/${TOOLCHAINEXT_OUTPUTNAME}.target.manifest")) diff --git a/meta/lib/oeqa/sdkext/cases/devtool.py b/meta/lib/oeqa/sdkext/cases/devtool.py index ea9051710a..857628cef8 100644 --- a/meta/lib/oeqa/sdkext/cases/devtool.py +++ b/meta/lib/oeqa/sdkext/cases/devtool.py @@ -70,7 +70,7 @@ class DevtoolTest(OESDKExtTestCase): def test_extend_autotools_recipe_creation(self): req = 'https://github.com/rdfa/librdfa' recipe = "librdfa" - self._run('devtool sdk-install libxml2') + self._run('devtool sdk-install -s libxml2') self._run('devtool add %s %s' % (recipe, req) ) try: self._run('devtool build %s' % recipe) -- 2.12.3 -- _______________________________________________ Openembedded-core mailing list [email protected] http://lists.openembedded.org/mailman/listinfo/openembedded-core
