diff options
| author | Yoann Congal <yoann.congal@smile.fr> | 2025-02-04 00:48:36 +0100 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2025-02-05 12:49:56 +0000 |
| commit | 50a609576e399cd048480cfeab53d5a26129cd03 (patch) | |
| tree | f087be2cde8efd4d187fbcbc3f745b6a67fdc040 | |
| parent | 41aab515a76414bbc0d3e0d36f942ebc5fcd2bce (diff) | |
| download | poky-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.py | 10 |
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 | ||
