diff options
Diffstat (limited to 'meta/lib/oeqa/runtime/decorator/package.py')
-rw-r--r-- | meta/lib/oeqa/runtime/decorator/package.py | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/meta/lib/oeqa/runtime/decorator/package.py b/meta/lib/oeqa/runtime/decorator/package.py index 57178655cc..b78ac9fc38 100644 --- a/meta/lib/oeqa/runtime/decorator/package.py +++ b/meta/lib/oeqa/runtime/decorator/package.py | |||
@@ -5,7 +5,6 @@ | |||
5 | # | 5 | # |
6 | 6 | ||
7 | from oeqa.core.decorator import OETestDecorator, registerDecorator | 7 | from oeqa.core.decorator import OETestDecorator, registerDecorator |
8 | from oeqa.core.utils.misc import strToSet | ||
9 | 8 | ||
10 | @registerDecorator | 9 | @registerDecorator |
11 | class OEHasPackage(OETestDecorator): | 10 | class OEHasPackage(OETestDecorator): |
@@ -34,25 +33,30 @@ class OEHasPackage(OETestDecorator): | |||
34 | def setUpDecorator(self): | 33 | def setUpDecorator(self): |
35 | need_pkgs = set() | 34 | need_pkgs = set() |
36 | unneed_pkgs = set() | 35 | unneed_pkgs = set() |
37 | pkgs = strToSet(self.need_pkgs) | 36 | |
38 | for pkg in pkgs: | 37 | # Turn literal strings into a list so we can just iterate over it |
38 | if isinstance(self.need_pkgs, str): | ||
39 | self.need_pkgs = [self.need_pkgs,] | ||
40 | |||
41 | mlprefix = self.case.td.get("MLPREFIX") | ||
42 | for pkg in self.need_pkgs: | ||
39 | if pkg.startswith('!'): | 43 | if pkg.startswith('!'): |
40 | unneed_pkgs.add(pkg[1:]) | 44 | unneed_pkgs.add(mlprefix + pkg[1:]) |
41 | else: | 45 | else: |
42 | need_pkgs.add(pkg) | 46 | need_pkgs.add(mlprefix + pkg) |
43 | 47 | ||
44 | if unneed_pkgs: | 48 | if unneed_pkgs: |
45 | msg = 'Checking if %s is not installed' % ', '.join(unneed_pkgs) | 49 | msg = 'Checking if %s is not installed' % ', '.join(unneed_pkgs) |
46 | self.logger.debug(msg) | 50 | self.logger.debug(msg) |
47 | if not self.case.tc.image_packages.isdisjoint(unneed_pkgs): | 51 | if not self.case.tc.image_packages.isdisjoint(unneed_pkgs): |
48 | msg = "Test can't run with %s installed" % ', or'.join(unneed_pkgs) | 52 | msg = "Test can't run with %s installed" % ', or '.join(unneed_pkgs) |
49 | self._decorator_fail(msg) | 53 | self._decorator_fail(msg) |
50 | 54 | ||
51 | if need_pkgs: | 55 | if need_pkgs: |
52 | msg = 'Checking if at least one of %s is installed' % ', '.join(need_pkgs) | 56 | msg = 'Checking if at least one of %s is installed' % ', '.join(need_pkgs) |
53 | self.logger.debug(msg) | 57 | self.logger.debug(msg) |
54 | if self.case.tc.image_packages.isdisjoint(need_pkgs): | 58 | if self.case.tc.image_packages.isdisjoint(need_pkgs): |
55 | msg = "Test requires %s to be installed" % ', or'.join(need_pkgs) | 59 | msg = "Test requires %s to be installed" % ', or '.join(need_pkgs) |
56 | self._decorator_fail(msg) | 60 | self._decorator_fail(msg) |
57 | 61 | ||
58 | def _decorator_fail(self, msg): | 62 | def _decorator_fail(self, msg): |