Skip to content

Commit

Permalink
selftest/reproducible: Add a method to test a single recipe
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Richard Purdie <[email protected]>
  • Loading branch information
ycongal-smile authored and rpurdie committed Feb 5, 2025
1 parent 41aab51 commit 50a6095
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions meta/lib/oeqa/selftest/cases/reproducible.py
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,7 @@ def setUpLocal(self):
'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:
Expand All @@ -170,12 +171,17 @@ def setUpLocal(self):
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', {})

Expand Down

0 comments on commit 50a6095

Please sign in to comment.