mirror of
https://git.yoctoproject.org/poky
synced 2026-04-19 06:32:13 +02:00
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>
This commit is contained in:
@@ -128,23 +128,17 @@ class DiffoscopeTests(OESelftestTestCase):
|
||||
class ReproducibleTests(OESelftestTestCase):
|
||||
# Test the reproducibility of whatever is built between sstate_targets and targets
|
||||
|
||||
package_classes = get_bb_var("OEQA_REPRODUCIBLE_TEST_PACKAGE")
|
||||
if package_classes:
|
||||
package_classes = package_classes.split()
|
||||
else:
|
||||
package_classes = ['deb', 'ipk', 'rpm']
|
||||
package_classes = ['deb', 'ipk', 'rpm']
|
||||
|
||||
# Maximum report size, in bytes
|
||||
max_report_size = 250 * 1024 * 1024
|
||||
|
||||
# targets are the things we want to test the reproducibility of
|
||||
targets = get_bb_var("OEQA_REPRODUCIBLE_TEST_TARGET")
|
||||
if targets:
|
||||
targets = targets.split()
|
||||
else:
|
||||
targets = ['core-image-minimal', 'core-image-sato', 'core-image-full-cmdline', 'core-image-weston', 'world']
|
||||
targets = ['core-image-minimal', 'core-image-sato', 'core-image-full-cmdline', 'core-image-weston', 'world']
|
||||
|
||||
# sstate targets are things to pull from sstate to potentially cut build/debugging time
|
||||
sstate_targets = (get_bb_var("OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS") or "").split()
|
||||
sstate_targets = []
|
||||
|
||||
save_results = False
|
||||
if 'OEQA_DEBUGGING_SAVED_OUTPUT' in os.environ:
|
||||
save_results = os.environ['OEQA_DEBUGGING_SAVED_OUTPUT']
|
||||
@@ -159,11 +153,20 @@ class ReproducibleTests(OESelftestTestCase):
|
||||
|
||||
def setUpLocal(self):
|
||||
super().setUpLocal()
|
||||
needed_vars = ['TOPDIR', 'TARGET_PREFIX', 'BB_NUMBER_THREADS', 'BB_HASHSERVE']
|
||||
needed_vars = ['TOPDIR', 'TARGET_PREFIX', 'BB_NUMBER_THREADS', 'BB_HASHSERVE', 'OEQA_REPRODUCIBLE_TEST_PACKAGE', 'OEQA_REPRODUCIBLE_TEST_TARGET', 'OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS']
|
||||
bb_vars = get_bb_vars(needed_vars)
|
||||
for v in needed_vars:
|
||||
setattr(self, v.lower(), bb_vars[v])
|
||||
|
||||
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_SSTATE_TARGETS']:
|
||||
self.sstate_targets = bb_vars['OEQA_REPRODUCIBLE_TEST_SSTATE_TARGETS'].split()
|
||||
|
||||
self.extraresults = {}
|
||||
self.extraresults.setdefault('reproducible.rawlogs', {})['log'] = ''
|
||||
self.extraresults.setdefault('reproducible', {}).setdefault('files', {})
|
||||
|
||||
Reference in New Issue
Block a user