diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2023-09-21 16:53:27 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2023-09-22 07:45:17 +0100 |
commit | fbaa7da33b497088aa352f6cb8dbc02327310cd6 (patch) | |
tree | 604ae6988f8edc545fde44e753af84d15ffa0903 /meta/lib/oeqa/selftest/cases/reproducible.py | |
parent | 0eec01dee1b12fab24478a05c04174d5eb33eb6f (diff) | |
download | poky-fbaa7da33b497088aa352f6cb8dbc02327310cd6.tar.gz |
oeqa/selftest/reproducible: Avoid oe-selftest startup delays
Currently the bb_get_var calls trigger multiple "bitbake -e" executions
which slow the start of oe-selftest for any test. Rework the code to avoid
these delays.
(From OE-Core rev: c9ea3570f5dbdaf8c61e445ae9de759a0b71e21f)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/lib/oeqa/selftest/cases/reproducible.py')
-rw-r--r-- | meta/lib/oeqa/selftest/cases/reproducible.py | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/meta/lib/oeqa/selftest/cases/reproducible.py b/meta/lib/oeqa/selftest/cases/reproducible.py index 4c6ed4e4a5..84c6c3a05f 100644 --- a/meta/lib/oeqa/selftest/cases/reproducible.py +++ b/meta/lib/oeqa/selftest/cases/reproducible.py | |||
@@ -128,23 +128,17 @@ class DiffoscopeTests(OESelftestTestCase): | |||
128 | class ReproducibleTests(OESelftestTestCase): | 128 | class ReproducibleTests(OESelftestTestCase): |
129 | # Test the reproducibility of whatever is built between sstate_targets and targets | 129 | # Test the reproducibility of whatever is built between sstate_targets and targets |
130 | 130 | ||
131 | package_classes = get_bb_var("OEQA_REPRODUCIBLE_TEST_PACKAGE") | 131 | package_classes = ['deb', 'ipk', 'rpm'] |
132 | if package_classes: | ||
133 | package_classes = package_classes.split() | ||
134 | else: | ||
135 | package_classes = ['deb', 'ipk', 'rpm'] | ||
136 | 132 | ||
137 | # Maximum report size, in bytes | 133 | # Maximum report size, in bytes |
138 | max_report_size = 250 * 1024 * 1024 | 134 | max_report_size = 250 * 1024 * 1024 |
139 | 135 | ||
140 | # targets are the things we want to test the reproducibility of | 136 | # targets are the things we want to test the reproducibility of |
141 | targets = get_bb_var("OEQA_REPRODUCIBLE_TEST_TARGET") | 137 | targets = ['core-image-minimal', 'core-image-sato', 'core-image-full-cmdline', 'core-image-weston', 'world'] |
142 | if targets: | 138 | |
143 | targets = targets.split() | ||
144 | else: | ||
145 | targets = ['core-image-minimal', 'core-image-sato', 'core-image-full-cmdline', 'core-image-weston', 'world'] | ||
146 | # sstate targets are things to pull from sstate to potentially cut build/debugging time | 139 | # sstate targets are things to pull from sstate to potentially cut build/debugging time |
147 | sstate_targets = (get_bb_var("OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS") or "").split() | 140 | sstate_targets = [] |
141 | |||
148 | save_results = False | 142 | save_results = False |
149 | if 'OEQA_DEBUGGING_SAVED_OUTPUT' in os.environ: | 143 | if 'OEQA_DEBUGGING_SAVED_OUTPUT' in os.environ: |
150 | save_results = os.environ['OEQA_DEBUGGING_SAVED_OUTPUT'] | 144 | save_results = os.environ['OEQA_DEBUGGING_SAVED_OUTPUT'] |
@@ -159,11 +153,20 @@ class ReproducibleTests(OESelftestTestCase): | |||
159 | 153 | ||
160 | def setUpLocal(self): | 154 | def setUpLocal(self): |
161 | super().setUpLocal() | 155 | super().setUpLocal() |
162 | needed_vars = ['TOPDIR', 'TARGET_PREFIX', 'BB_NUMBER_THREADS', 'BB_HASHSERVE'] | 156 | needed_vars = ['TOPDIR', 'TARGET_PREFIX', 'BB_NUMBER_THREADS', 'BB_HASHSERVE', 'OEQA_REPRODUCIBLE_TEST_PACKAGE', 'OEQA_REPRODUCIBLE_TEST_TARGET', 'OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS'] |
163 | bb_vars = get_bb_vars(needed_vars) | 157 | bb_vars = get_bb_vars(needed_vars) |
164 | for v in needed_vars: | 158 | for v in needed_vars: |
165 | setattr(self, v.lower(), bb_vars[v]) | 159 | setattr(self, v.lower(), bb_vars[v]) |
166 | 160 | ||
161 | if bb_vars['OEQA_REPRODUCIBLE_TEST_PACKAGE']: | ||
162 | self.package_classes = bb_vars['OEQA_REPRODUCIBLE_TEST_PACKAGE'].split() | ||
163 | |||
164 | if bb_vars['OEQA_REPRODUCIBLE_TEST_TARGET']: | ||
165 | self.targets = bb_vars['OEQA_REPRODUCIBLE_TEST_TARGET'].split() | ||
166 | |||
167 | if bb_vars['OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS']: | ||
168 | self.sstate_targets = bb_vars['OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS'].split() | ||
169 | |||
167 | self.extraresults = {} | 170 | self.extraresults = {} |
168 | self.extraresults.setdefault('reproducible.rawlogs', {})['log'] = '' | 171 | self.extraresults.setdefault('reproducible.rawlogs', {})['log'] = '' |
169 | self.extraresults.setdefault('reproducible', {}).setdefault('files', {}) | 172 | self.extraresults.setdefault('reproducible', {}).setdefault('files', {}) |