| import os |
| |
| from oeqa.selftest.case import OESelftestTestCase |
| from oeqa.core.decorator.depends import OETestDepends |
| from oeqa.utils.commands import runCmd, bitbake, get_bb_var, runqemu |
| |
| class Systemdboot(OESelftestTestCase): |
| |
| def test_efi_systemdboot_images_can_be_built(self): |
| """ |
| Summary: Check if systemd-boot images can be built correctly |
| Expected: 1. File systemd-boot.efi should be available in $poky/build/tmp/deploy/images/genericx86-64 |
| 2. 'systemd-boot" can be built correctly |
| Product: oe-core |
| Author: Jose Perez Carranza <jose.perez.carranza@intel.com> |
| AutomatedBy: Jose Perez Carranza <jose.perez.carranza@intel.com> |
| """ |
| |
| # Set EFI_PROVIDER = "systemdboot" and MACHINE = "genericx86-64" in conf/local.conf |
| features = 'EFI_PROVIDER = "systemd-boot"\n' |
| features += 'MACHINE = "genericx86-64"' |
| self.append_config(features) |
| |
| deploydir = get_bb_var('DEPLOY_DIR_IMAGE', "core-image-minimal") |
| systemdbootfile = os.path.join(deploydir, 'systemd-bootx64.efi') |
| |
| # Ensure we're actually testing that this gets built and not that |
| # it was around from an earlier build |
| bitbake('-c clean systemd-boot') |
| runCmd('rm -f %s' % systemdbootfile) |
| |
| # Build a genericx86-64/efi systemdboot image |
| bitbake('mtools-native core-image-minimal wic-tools') |
| |
| found = os.path.isfile(systemdbootfile) |
| self.assertTrue(found, 'Systemd-Boot file %s not found' % systemdbootfile) |
| |
| """ |
| Summary: Check if EFI bootloader for systemd is correctly build |
| Dependencies: Image was built correctly on testcase 1445 |
| Steps: 1. Copy bootx64.efi file from the wic created |
| under build/tmp/deploy/images/genericx86-64 |
| 2. Check bootx64.efi was copied from wic |
| 3. Verify the checksums from the copied and previously |
| created file are equal. |
| Expected : Systemd-bootx64.efi and bootx64.efi should be the same |
| hence checksums should be equal. |
| Product: oe-core |
| Author: Jose Perez Carranza <jose.perez.carranza at linux-intel.com> |
| AutomatedBy: Jose Perez Carranza <jose.perez.carranza at linux-intel.com> |
| """ |
| |
| systemdbootimage = os.path.join(deploydir, 'core-image-minimal-genericx86-64.wic') |
| imagebootfile = os.path.join(deploydir, 'bootx64.efi') |
| |
| # Clean environment before start the test |
| if os.path.isfile(imagebootfile): |
| runCmd('rm -f %s' % imagebootfile) |
| |
| sysroot = get_bb_var('RECIPE_SYSROOT_NATIVE', 'wic-tools') |
| |
| runCmd('wic cp %s:1/EFI/BOOT/bootx64.efi %s -n %s' % (systemdbootimage, |
| imagebootfile, sysroot)) |
| |
| found = os.path.isfile(imagebootfile) |
| self.assertTrue(found, 'bootx64.efi file %s was not copied from image' |
| % imagebootfile) |
| |
| result = runCmd('md5sum %s %s' % (systemdbootfile, imagebootfile)) |
| self.assertEqual(result.output.split()[0], result.output.split()[2], |
| '%s was not correclty generated' % imagebootfile) |