diff options
| -rw-r--r-- | meta/lib/oe/tests/test_utils.py | 27 | ||||
| -rw-r--r-- | meta/lib/oe/utils.py | 16 |
2 files changed, 43 insertions, 0 deletions
diff --git a/meta/lib/oe/tests/test_utils.py b/meta/lib/oe/tests/test_utils.py new file mode 100644 index 0000000000..466c47eb9c --- /dev/null +++ b/meta/lib/oe/tests/test_utils.py | |||
| @@ -0,0 +1,27 @@ | |||
| 1 | import unittest | ||
| 2 | import bb, oe.utils | ||
| 3 | |||
| 4 | class TestPackagesFilterOutSystem(unittest.TestCase): | ||
| 5 | def test_filter(self): | ||
| 6 | """ | ||
| 7 | Test that oe.utils.packages_filter_out_system works. | ||
| 8 | """ | ||
| 9 | |||
| 10 | d = bb.data_smart.DataSmart() | ||
| 11 | d.setVar("PN", "foo") | ||
| 12 | |||
| 13 | d.setVar("PACKAGES", "foo foo-doc foo-dev") | ||
| 14 | pkgs = oe.utils.packages_filter_out_system(d) | ||
| 15 | self.assertEqual(pkgs, []) | ||
| 16 | |||
| 17 | d.setVar("PACKAGES", "foo foo-doc foo-data foo-dev") | ||
| 18 | pkgs = oe.utils.packages_filter_out_system(d) | ||
| 19 | self.assertEqual(pkgs, ["foo-data"]) | ||
| 20 | |||
| 21 | d.setVar("PACKAGES", "foo foo-locale-en-gb") | ||
| 22 | pkgs = oe.utils.packages_filter_out_system(d) | ||
| 23 | self.assertEqual(pkgs, []) | ||
| 24 | |||
| 25 | d.setVar("PACKAGES", "foo foo-data foo-locale-en-gb") | ||
| 26 | pkgs = oe.utils.packages_filter_out_system(d) | ||
| 27 | self.assertEqual(pkgs, ["foo-data"]) | ||
diff --git a/meta/lib/oe/utils.py b/meta/lib/oe/utils.py index b269f32277..acd39693b5 100644 --- a/meta/lib/oe/utils.py +++ b/meta/lib/oe/utils.py | |||
| @@ -107,3 +107,19 @@ def features_backfill(var,d): | |||
| 107 | 107 | ||
| 108 | if addfeatures: | 108 | if addfeatures: |
| 109 | d.appendVar(var, " " + " ".join(addfeatures)) | 109 | d.appendVar(var, " " + " ".join(addfeatures)) |
| 110 | |||
| 111 | |||
| 112 | def packages_filter_out_system(d): | ||
| 113 | """ | ||
| 114 | Return a list of packages from PACKAGES with the "system" packages such as | ||
| 115 | PN-dbg PN-doc PN-locale-eb-gb removed. | ||
| 116 | """ | ||
| 117 | pn = d.getVar('PN', True) | ||
| 118 | blacklist = map(lambda suffix: pn + suffix, ('', '-dbg', '-dev', '-doc', '-locale', '-staticdev')) | ||
| 119 | localepkg = pn + "-locale-" | ||
| 120 | pkgs = [] | ||
| 121 | |||
| 122 | for pkg in d.getVar('PACKAGES', True).split(): | ||
| 123 | if pkg not in blacklist and localepkg not in pkg: | ||
| 124 | pkgs.append(pkg) | ||
| 125 | return pkgs | ||
