diff options
Diffstat (limited to 'meta/lib/oeqa/sdk/context.py')
-rw-r--r-- | meta/lib/oeqa/sdk/context.py | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/meta/lib/oeqa/sdk/context.py b/meta/lib/oeqa/sdk/context.py index ec8972d05a..adc4166fd2 100644 --- a/meta/lib/oeqa/sdk/context.py +++ b/meta/lib/oeqa/sdk/context.py @@ -20,23 +20,30 @@ class OESDKTestContext(OETestContext): self.target_pkg_manifest = target_pkg_manifest self.host_pkg_manifest = host_pkg_manifest - def _hasPackage(self, manifest, pkg): - for host_pkg in manifest.keys(): - if re.search(pkg, host_pkg): + def _hasPackage(self, manifest, pkg, regex=False): + if regex: + # do regex match + pat = re.compile(pkg) + for p in manifest.keys(): + if pat.search(p): + return True + else: + # do exact match + if pkg in manifest.keys(): return True return False - def hasHostPackage(self, pkg): - return self._hasPackage(self.host_pkg_manifest, pkg) + def hasHostPackage(self, pkg, regex=False): + return self._hasPackage(self.host_pkg_manifest, pkg, regex=regex) - def hasTargetPackage(self, pkg, multilib=False): + def hasTargetPackage(self, pkg, multilib=False, regex=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) + return self._hasPackage(self.target_pkg_manifest, pkg, regex=regex) class OESDKTestContextExecutor(OETestContextExecutor): _context_class = OESDKTestContext |