diff options
Diffstat (limited to 'meta/lib/oeqa/sdk')
-rw-r--r-- | meta/lib/oeqa/sdk/cases/buildgalculator.py | 4 | ||||
-rw-r--r-- | meta/lib/oeqa/sdk/cases/buildlzip.py | 4 | ||||
-rw-r--r-- | meta/lib/oeqa/sdk/cases/gcc.py | 4 | ||||
-rw-r--r-- | meta/lib/oeqa/sdk/context.py | 21 |
4 files changed, 20 insertions, 13 deletions
diff --git a/meta/lib/oeqa/sdk/cases/buildgalculator.py b/meta/lib/oeqa/sdk/cases/buildgalculator.py index 3714825b06..050d1b3b52 100644 --- a/meta/lib/oeqa/sdk/cases/buildgalculator.py +++ b/meta/lib/oeqa/sdk/cases/buildgalculator.py @@ -8,8 +8,8 @@ class GalculatorTest(OESDKTestCase): @classmethod def setUpClass(self): - if not (self.tc.hasTargetPackage(r"gtk\+3", multilib=True) or\ - self.tc.hasTargetPackage(r"libgtk-3.0", multilib=True)): + if not (self.tc.hasTargetPackage("gtk+3", multilib=True) or \ + self.tc.hasTargetPackage("libgtk-3.0", multilib=True)): raise unittest.SkipTest("GalculatorTest class: SDK don't support gtk+3") if not (self.tc.hasHostPackage("nativesdk-gettext-dev")): raise unittest.SkipTest("GalculatorTest class: SDK doesn't contain gettext") diff --git a/meta/lib/oeqa/sdk/cases/buildlzip.py b/meta/lib/oeqa/sdk/cases/buildlzip.py index 3a89ce8627..b28cc3a595 100644 --- a/meta/lib/oeqa/sdk/cases/buildlzip.py +++ b/meta/lib/oeqa/sdk/cases/buildlzip.py @@ -17,8 +17,8 @@ class BuildLzipTest(OESDKTestCase): machine = self.td.get("MACHINE") - if not (self.tc.hasTargetPackage("packagegroup-cross-canadian-%s" % machine) or - self.tc.hasTargetPackage("gcc")): + if not (self.tc.hasHostPackage("packagegroup-cross-canadian-%s" % machine) or + self.tc.hasHostPackage("^gcc-", regex=True)): raise unittest.SkipTest("SDK doesn't contain a cross-canadian toolchain") def test_lzip(self): diff --git a/meta/lib/oeqa/sdk/cases/gcc.py b/meta/lib/oeqa/sdk/cases/gcc.py index d11f4b63fb..b32b01fc24 100644 --- a/meta/lib/oeqa/sdk/cases/gcc.py +++ b/meta/lib/oeqa/sdk/cases/gcc.py @@ -18,8 +18,8 @@ class GccCompileTest(OESDKTestCase): def setUp(self): machine = self.td.get("MACHINE") - if not (self.tc.hasTargetPackage("packagegroup-cross-canadian-%s" % machine) or - self.tc.hasTargetPackage("gcc")): + if not (self.tc.hasHostPackage("packagegroup-cross-canadian-%s" % machine) or + self.tc.hasHostPackage("^gcc-", regex=True)): raise unittest.SkipTest("GccCompileTest class: SDK doesn't contain a cross-canadian toolchain") def test_gcc_compile(self): 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 |