summaryrefslogtreecommitdiff
path: root/poky/meta/lib/oeqa/selftest/cases/reproducible.py
diff options
context:
space:
mode:
Diffstat (limited to 'poky/meta/lib/oeqa/selftest/cases/reproducible.py')
-rw-r--r--poky/meta/lib/oeqa/selftest/cases/reproducible.py21
1 files changed, 9 insertions, 12 deletions
diff --git a/poky/meta/lib/oeqa/selftest/cases/reproducible.py b/poky/meta/lib/oeqa/selftest/cases/reproducible.py
index 97a9c3da90..92266ab66a 100644
--- a/poky/meta/lib/oeqa/selftest/cases/reproducible.py
+++ b/poky/meta/lib/oeqa/selftest/cases/reproducible.py
@@ -16,8 +16,6 @@ import os
import datetime
exclude_packages = [
- 'rust-rustdoc',
- 'rust-dbg'
]
def is_excluded(package):
@@ -135,7 +133,8 @@ class ReproducibleTests(OESelftestTestCase):
max_report_size = 250 * 1024 * 1024
# targets are the things we want to test the reproducibility of
- targets = ['core-image-minimal', 'core-image-sato', 'core-image-full-cmdline', 'core-image-weston', 'world']
+ # Have to add the virtual targets manually for now as builds may or may not include them as they're exclude from world
+ targets = ['core-image-minimal', 'core-image-sato', 'core-image-full-cmdline', 'core-image-weston', 'world', 'virtual/librpc', 'virtual/libsdl2', 'virtual/crypt']
# sstate targets are things to pull from sstate to potentially cut build/debugging time
sstate_targets = []
@@ -178,12 +177,8 @@ class ReproducibleTests(OESelftestTestCase):
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', {})
- def append_to_log(self, msg):
- self.extraresults['reproducible.rawlogs']['log'] += msg
-
def compare_packages(self, reference_dir, test_dir, diffutils_sysroot):
result = PackageCompareResults(self.oeqa_reproducible_excluded_packages)
@@ -210,7 +205,7 @@ class ReproducibleTests(OESelftestTestCase):
def write_package_list(self, package_class, name, packages):
self.extraresults['reproducible']['files'].setdefault(package_class, {})[name] = [
- {'reference': p.reference, 'test': p.test} for p in packages]
+ p.reference.split("/./")[1] for p in packages]
def copy_file(self, source, dest):
bb.utils.mkdirhier(os.path.dirname(dest))
@@ -275,9 +270,13 @@ class ReproducibleTests(OESelftestTestCase):
os.chmod(save_dir, stat.S_IRWXU | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH)
self.logger.info('Non-reproducible packages will be copied to %s', save_dir)
+ # The below bug shows that a few reproducible issues are depends on build dir path length.
+ # https://bugzilla.yoctoproject.org/show_bug.cgi?id=15554
+ # So, the reproducibleA & reproducibleB directories are changed to reproducibleA & reproducibleB-extended to have different size.
+
vars_A = self.do_test_build('reproducibleA', self.build_from_sstate)
- vars_B = self.do_test_build('reproducibleB', False)
+ vars_B = self.do_test_build('reproducibleB-extended', False)
# NOTE: The temp directories from the reproducible build are purposely
# kept after the build so it can be diffed for debugging.
@@ -296,8 +295,6 @@ class ReproducibleTests(OESelftestTestCase):
self.logger.info('Reproducibility summary for %s: %s' % (c, result))
- self.append_to_log('\n'.join("%s: %s" % (r.status, r.test) for r in result.total))
-
self.write_package_list(package_class, 'missing', result.missing)
self.write_package_list(package_class, 'different', result.different)
self.write_package_list(package_class, 'different_excluded', result.different_excluded)
@@ -332,7 +329,7 @@ class ReproducibleTests(OESelftestTestCase):
# Copy jquery to improve the diffoscope output usability
self.copy_file(os.path.join(jquery_sysroot, 'usr/share/javascript/jquery/jquery.min.js'), os.path.join(package_html_dir, 'jquery.js'))
- run_diffoscope('reproducibleA', 'reproducibleB', package_html_dir, max_report_size=self.max_report_size,
+ run_diffoscope('reproducibleA', 'reproducibleB-extended', package_html_dir, max_report_size=self.max_report_size,
native_sysroot=diffoscope_sysroot, ignore_status=True, cwd=package_dir)
if fails: