[OE-core] [oe-core][PATCH 1/1] testsdk: add ability to search for multilib packages

Joe Slater jslater at windriver.com
Tue Dec 19 19:07:28 UTC 2017


We search for packages related to the sdk environment
being used for a test.

Signed-off-by: Joe Slater <jslater at windriver.com>
---
 meta/lib/oeqa/sdk/cases/buildgalculator.py |  7 ++++---
 meta/lib/oeqa/sdk/context.py               | 15 +++++++++++++--
 2 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/meta/lib/oeqa/sdk/cases/buildgalculator.py b/meta/lib/oeqa/sdk/cases/buildgalculator.py
index 780afcc..8518b15 100644
--- a/meta/lib/oeqa/sdk/cases/buildgalculator.py
+++ b/meta/lib/oeqa/sdk/cases/buildgalculator.py
@@ -8,9 +8,10 @@ class GalculatorTest(OESDKTestCase):
 
     @classmethod
     def setUpClass(self):
-        if not (self.tc.hasTargetPackage("gtk\+3") or\
-                self.tc.hasTargetPackage("libgtk-3.0")):
-            raise unittest.SkipTest("GalculatorTest class: SDK don't support gtk+3")
+        # search for the multilib package per sdk_env
+        if not (self.tc.hasPrefixedTargetPackage("gtk\+3") or
+                self.tc.hasPrefixedTargetPackage("libgtk-3.0")):
+            raise unittest.SkipTest("GalculatorTest class: SDK doesn't support gtk+3")
 
     def test_galculator(self):
         dl_dir = self.td.get('DL_DIR', None)
diff --git a/meta/lib/oeqa/sdk/context.py b/meta/lib/oeqa/sdk/context.py
index b3d7c75..291be1e 100644
--- a/meta/lib/oeqa/sdk/context.py
+++ b/meta/lib/oeqa/sdk/context.py
@@ -22,8 +22,9 @@ class OESDKTestContext(OETestContextThreaded):
         self.host_pkg_manifest = host_pkg_manifest
 
     def _hasPackage(self, manifest, pkg):
-        for host_pkg in manifest.keys():
-            if re.search(pkg, host_pkg):
+        pat = re.compile(pkg)
+        for s in manifest.keys():
+            if pat.search(s):
                 return True
         return False
 
@@ -33,6 +34,16 @@ class OESDKTestContext(OETestContextThreaded):
     def hasTargetPackage(self, pkg):
         return self._hasPackage(self.target_pkg_manifest, pkg)
 
+    def hasPrefixedTargetPackage(self, pkg):
+        # extract multilib from environment script name
+        try:
+            p = re.match(".*(lib.?[36][24]-)linux-?", self.sdk_env).group(1) + pkg
+        except:
+            p = pkg
+
+        # bb.warn("Searching for multilib pkg %s" % (p))
+        return self.hasTargetPackage(p)
+
 class OESDKTestContextExecutor(OETestContextExecutor):
     _context_class = OESDKTestContext
 
-- 
2.7.4




More information about the Openembedded-core mailing list