From: Yoann Congal <yoann.con...@smile.fr> 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] Signed-off-by: Yoann Congal <yoann.con...@smile.fr> --- NB: Some dependencies are not from DEPENDS and are therefore rebuilt from scratch: In my test I found that PACKAGE_DEPENDS, PACKAGE_WRITE_DEPS, PATCHTOOL create dependencies that are rebuilt in the reproducible test but I'm not sure it's valid to explicitly prebuild them using sstate. What I need is the definitive list of recipe dependency in the task graph of my leaf recipe. I don't know if I can get that easily, parsing $_taskdep maybe? --- meta/lib/oeqa/selftest/cases/reproducible.py | 10 ++++++++-- 1 file 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): 'OEQA_REPRODUCIBLE_TEST_TARGET', 'OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS', 'OEQA_REPRODUCIBLE_EXCLUDED_PACKAGES', + 'OEQA_REPRODUCIBLE_TEST_LEAF_TARGETS', ] bb_vars = get_bb_vars(needed_vars) for v in needed_vars: @@ -170,12 +171,17 @@ class ReproducibleTests(OESelftestTestCase): if bb_vars['OEQA_REPRODUCIBLE_TEST_PACKAGE']: self.package_classes = bb_vars['OEQA_REPRODUCIBLE_TEST_PACKAGE'].split() - if bb_vars['OEQA_REPRODUCIBLE_TEST_TARGET']: - self.targets = bb_vars['OEQA_REPRODUCIBLE_TEST_TARGET'].split() + if bb_vars['OEQA_REPRODUCIBLE_TEST_TARGET'] or bb_vars['OEQA_REPRODUCIBLE_TEST_LEAF_TARGETS']: + self.targets = (bb_vars['OEQA_REPRODUCIBLE_TEST_TARGET'] or "").split() + (bb_vars['OEQA_REPRODUCIBLE_TEST_LEAF_TARGETS'] or "").split() if bb_vars['OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS']: self.sstate_targets = bb_vars['OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS'].split() + if bb_vars['OEQA_REPRODUCIBLE_TEST_LEAF_TARGETS']: + # Setup to build every DEPENDS of leaf recipes using sstate + for leaf_recipe in bb_vars['OEQA_REPRODUCIBLE_TEST_LEAF_TARGETS'].split(): + self.sstate_targets.extend(get_bb_var('DEPENDS', leaf_recipe).split()) + self.extraresults = {} self.extraresults.setdefault('reproducible', {}).setdefault('files', {})
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#210744): https://lists.openembedded.org/g/openembedded-core/message/210744 Mute This Topic: https://lists.openembedded.org/mt/110983251/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-