]> code.ossystems Code Review - openembedded-core.git/commitdiff
sdk/context.py: add ability to check for multilib version of target package
authorChen Qi <Qi.Chen@windriver.com>
Wed, 29 Aug 2018 02:56:29 +0000 (10:56 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 30 Aug 2018 15:16:06 +0000 (16:16 +0100)
Add a named argument 'multilib' for the hasTargetPackage function. Its default
value is False. When setting to True, it will try to get the correct multilib
prefix from the sdk_env, the environment setup script.

We need this because we don't want unexpected run of some sdk test cases.
The following steps will generate error.

1. Enable multilib for qemux86-64
   require conf/multilib.conf
   MULTILIBS ?= "multilib:lib32"
   DEFAULTTUNE_virtclass-multilib-lib32 ?= "core2-32"
2. bitbake core-image-sato -c populate_sdk
3. bitbake core-image-sato -c testsdk

The error message is like below.

  No package 'gtk+-3.0' found
  RESULTS - buildgalculator.GalculatorTest.test_galculator - Testcase -1: FAILED

As we don't have lib32-gtk+3 installed, the test case should be skipped when
testing against the lib32 environment setup script.

Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/lib/oeqa/sdk/context.py

index 7c091c0534cdadbc604f37971f4d22e4bb3aa637..ec8972d05a2aff8451db252901b8ff81583fef7c 100644 (file)
@@ -29,7 +29,13 @@ class OESDKTestContext(OETestContext):
     def hasHostPackage(self, pkg):
         return self._hasPackage(self.host_pkg_manifest, pkg)
 
-    def hasTargetPackage(self, pkg):
+    def hasTargetPackage(self, pkg, multilib=False):
+        if multilib:
+            # match multilib according to sdk_env
+            mls = self.td.get('MULTILIB_VARIANTS', '').split()
+            for ml in mls:
+                if ('ml'+ml) in self.sdk_env:
+                    pkg = ml + '-' + pkg
         return self._hasPackage(self.target_pkg_manifest, pkg)
 
 class OESDKTestContextExecutor(OETestContextExecutor):