summaryrefslogtreecommitdiffstats
path: root/meta/lib/oeqa/runtime/decorator/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'meta/lib/oeqa/runtime/decorator/package.py')
-rw-r--r--meta/lib/oeqa/runtime/decorator/package.py18
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
7from oeqa.core.decorator import OETestDecorator, registerDecorator 7from oeqa.core.decorator import OETestDecorator, registerDecorator
8from oeqa.core.utils.misc import strToSet
9 8
10@registerDecorator 9@registerDecorator
11class OEHasPackage(OETestDecorator): 10class 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):