diff options
author | Jose Quaresma <quaresma.jose@gmail.com> | 2022-10-14 16:22:45 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2022-11-02 11:04:32 +0000 |
commit | b5baa7dc8bd1c0d2d78c532d97a44120346b5edd (patch) | |
tree | 5d8482dcf474e3c34633ad053c9b6bd7acc916af /meta/lib | |
parent | b0c0783e31134f70122404c9c74d770836840745 (diff) | |
download | poky-b5baa7dc8bd1c0d2d78c532d97a44120346b5edd.tar.gz |
oeqa/selftest/archiver: Add multiconfig test for shared recipes
Test that the shared recipes in original mode with diff enabled works in multiconfig,
otherwise it will not build when using the same TMP dir.
The test can be run with:
oe-selftest -r archiver.Archiver.test_archiver_multiconfig_shared_unpack_and_patch
| oe-selftest - INFO - test_archiver_multiconfig_shared_unpack_and_patch (archiver.Archiver)
| oe-selftest - INFO - ... ok
| oe-selftest - INFO - ----------------------------------------------------------------------
| oe-selftest - INFO - Ran 1 test in 52.948s
| oe-selftest - INFO - OK
| oe-selftest - INFO - RESULTS:
| oe-selftest - INFO - RESULTS - archiver.Archiver.test_archiver_multiconfig_shared_unpack_and_patch: PASSED (49.98s)
| oe-selftest - INFO - SUMMARY:
| oe-selftest - INFO - oe-selftest () - Ran 1 test in 52.948s
| oe-selftest - INFO - oe-selftest - OK - All required tests passed (successes=1, skipped=0, failures=0, errors=0)
(From OE-Core rev: 0059a5c9c0116dcc24d03a946703c0cd2ee23d16)
Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib')
-rw-r--r-- | meta/lib/oeqa/selftest/cases/archiver.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/meta/lib/oeqa/selftest/cases/archiver.py b/meta/lib/oeqa/selftest/cases/archiver.py index ffdea832be..3fa59fff51 100644 --- a/meta/lib/oeqa/selftest/cases/archiver.py +++ b/meta/lib/oeqa/selftest/cases/archiver.py | |||
@@ -6,6 +6,7 @@ | |||
6 | 6 | ||
7 | import os | 7 | import os |
8 | import glob | 8 | import glob |
9 | import re | ||
9 | from oeqa.utils.commands import bitbake, get_bb_vars | 10 | from oeqa.utils.commands import bitbake, get_bb_vars |
10 | from oeqa.selftest.case import OESelftestTestCase | 11 | from oeqa.selftest.case import OESelftestTestCase |
11 | 12 | ||
@@ -119,7 +120,38 @@ class Archiver(OESelftestTestCase): | |||
119 | excluded_present = len(glob.glob(src_path_target + '/%s-*/*' % target_recipes[1])) | 120 | excluded_present = len(glob.glob(src_path_target + '/%s-*/*' % target_recipes[1])) |
120 | self.assertFalse(excluded_present, 'Recipe %s was not excluded.' % target_recipes[1]) | 121 | self.assertFalse(excluded_present, 'Recipe %s was not excluded.' % target_recipes[1]) |
121 | 122 | ||
123 | def test_archiver_multiconfig_shared_unpack_and_patch(self): | ||
124 | """ | ||
125 | Test that shared recipes in original mode with diff enabled works in multiconfig, | ||
126 | otherwise it will not build when using the same TMP dir. | ||
127 | """ | ||
128 | |||
129 | features = 'BBMULTICONFIG = "mc1 mc2"\n' | ||
130 | features += 'INHERIT += "archiver"\n' | ||
131 | features += 'ARCHIVER_MODE[src] = "original"\n' | ||
132 | features += 'ARCHIVER_MODE[diff] = "1"\n' | ||
133 | self.write_config(features) | ||
122 | 134 | ||
135 | # We can use any machine in multiconfig as long as they are different | ||
136 | self.write_config('MACHINE = "qemuarm"\n', 'mc1') | ||
137 | self.write_config('MACHINE = "qemux86"\n', 'mc2') | ||
138 | |||
139 | task = 'do_unpack_and_patch' | ||
140 | # Use gcc-source as it is a shared recipe (appends the pv to the pn) | ||
141 | pn = 'gcc-source-%s' % get_bb_vars(['PV'], 'gcc')['PV'] | ||
142 | |||
143 | # Generate the tasks signatures | ||
144 | bitbake('mc:mc1:%s mc:mc2:%s -c %s -S none' % (pn, pn, task)) | ||
145 | |||
146 | # Check the tasks signatures | ||
147 | # To be machine agnostic the tasks needs to generate the same signature for each machine | ||
148 | locked_sigs_inc = "%s/locked-sigs.inc" % self.builddir | ||
149 | locked_sigs = open(locked_sigs_inc).read() | ||
150 | task_sigs = re.findall(r"%s:%s:.*" % (pn, task), locked_sigs) | ||
151 | uniq_sigs = set(task_sigs) | ||
152 | self.assertFalse(len(uniq_sigs) - 1, \ | ||
153 | 'The task "%s" of the recipe "%s" has different signatures in "%s" for each machine in multiconfig' \ | ||
154 | % (task, pn, locked_sigs_inc)) | ||
123 | 155 | ||
124 | def test_archiver_srpm_mode(self): | 156 | def test_archiver_srpm_mode(self): |
125 | """ | 157 | """ |