summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYoann Congal <yoann.congal@smile.fr>2025-02-04 00:48:36 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2025-02-05 12:49:56 +0000
commit50a609576e399cd048480cfeab53d5a26129cd03 (patch)
treef087be2cde8efd4d187fbcbc3f745b6a67fdc040
parent41aab515a76414bbc0d3e0d36f942ebc5fcd2bce (diff)
downloadpoky-50a609576e399cd048480cfeab53d5a26129cd03.tar.gz
selftest/reproducible: Add a method to test a single recipe
Introduce a new variable "OEQA_REPRODUCIBLE_TEST_LEAF_TARGETS". It can be used like OEQA_REPRODUCIBLE_TEST_TARGET but will try to use sstate for the dependencies. This can be used to "quickly" test the reproducibility of a single recipe. [YOCTO #15701] (From OE-Core rev: e2440618bd12d7288a7f3f7cfb92d377ae61a3b4) Signed-off-by: Yoann Congal <yoann.congal@smile.fr> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/lib/oeqa/selftest/cases/reproducible.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/meta/lib/oeqa/selftest/cases/reproducible.py b/meta/lib/oeqa/selftest/cases/reproducible.py
index 30eea2675e..1e094892e9 100644
--- a/meta/lib/oeqa/selftest/cases/reproducible.py
+++ b/meta/lib/oeqa/selftest/cases/reproducible.py
@@ -162,6 +162,7 @@ class ReproducibleTests(OESelftestTestCase):
162 'OEQA_REPRODUCIBLE_TEST_TARGET', 162 'OEQA_REPRODUCIBLE_TEST_TARGET',
163 'OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS', 163 'OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS',
164 'OEQA_REPRODUCIBLE_EXCLUDED_PACKAGES', 164 'OEQA_REPRODUCIBLE_EXCLUDED_PACKAGES',
165 'OEQA_REPRODUCIBLE_TEST_LEAF_TARGETS',
165 ] 166 ]
166 bb_vars = get_bb_vars(needed_vars) 167 bb_vars = get_bb_vars(needed_vars)
167 for v in needed_vars: 168 for v in needed_vars:
@@ -170,12 +171,17 @@ class ReproducibleTests(OESelftestTestCase):
170 if bb_vars['OEQA_REPRODUCIBLE_TEST_PACKAGE']: 171 if bb_vars['OEQA_REPRODUCIBLE_TEST_PACKAGE']:
171 self.package_classes = bb_vars['OEQA_REPRODUCIBLE_TEST_PACKAGE'].split() 172 self.package_classes = bb_vars['OEQA_REPRODUCIBLE_TEST_PACKAGE'].split()
172 173
173 if bb_vars['OEQA_REPRODUCIBLE_TEST_TARGET']: 174 if bb_vars['OEQA_REPRODUCIBLE_TEST_TARGET'] or bb_vars['OEQA_REPRODUCIBLE_TEST_LEAF_TARGETS']:
174 self.targets = bb_vars['OEQA_REPRODUCIBLE_TEST_TARGET'].split() 175 self.targets = (bb_vars['OEQA_REPRODUCIBLE_TEST_TARGET'] or "").split() + (bb_vars['OEQA_REPRODUCIBLE_TEST_LEAF_TARGETS'] or "").split()
175 176
176 if bb_vars['OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS']: 177 if bb_vars['OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS']:
177 self.sstate_targets = bb_vars['OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS'].split() 178 self.sstate_targets = bb_vars['OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS'].split()
178 179
180 if bb_vars['OEQA_REPRODUCIBLE_TEST_LEAF_TARGETS']:
181 # Setup to build every DEPENDS of leaf recipes using sstate
182 for leaf_recipe in bb_vars['OEQA_REPRODUCIBLE_TEST_LEAF_TARGETS'].split():
183 self.sstate_targets.extend(get_bb_var('DEPENDS', leaf_recipe).split())
184
179 self.extraresults = {} 185 self.extraresults = {}
180 self.extraresults.setdefault('reproducible', {}).setdefault('files', {}) 186 self.extraresults.setdefault('reproducible', {}).setdefault('files', {})
181 187