From 00e2566f0ee0bd1ca29d0fe6239b61471865bfd9 Mon Sep 17 00:00:00 2001 From: Jose Perez Carranza Date: Thu, 15 Jun 2017 05:49:06 -0700 Subject: oeqa/selftest/systemdboot: Add Test to check boot file is created correctly Add Test case to verify if EFI bootloader for systemd boot is correctly build inside of image. [YOCTO #9903] (From meta-yocto rev: ce060ee09d00d737007f4a0569e13bebbcde0b3f) Signed-off-by: Jose Perez Carranza Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- .../lib/oeqa/selftest/cases/systemd_boot.py | 54 ++++++++++++++++++++-- 1 file changed, 50 insertions(+), 4 deletions(-) (limited to 'meta-yocto-bsp') diff --git a/meta-yocto-bsp/lib/oeqa/selftest/cases/systemd_boot.py b/meta-yocto-bsp/lib/oeqa/selftest/cases/systemd_boot.py index 848cdf7852..dd5eeec163 100644 --- a/meta-yocto-bsp/lib/oeqa/selftest/cases/systemd_boot.py +++ b/meta-yocto-bsp/lib/oeqa/selftest/cases/systemd_boot.py @@ -2,25 +2,26 @@ import os from oeqa.selftest.case import OESelftestTestCase from oeqa.core.decorator.oeid import OETestID +from oeqa.core.decorator.depends import OETestDepends from oeqa.utils.commands import runCmd, bitbake, get_bb_var, runqemu class Systemdboot(OESelftestTestCase): def _common_setup(self): """ - Common setup for test cases: 1445, XXXX + Common setup for test cases: 1445, 1528 """ - # Set EFI_PROVIDER = "gummiboot" and MACHINE = "genericx86-64" in conf/local.conf + # 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) def _common_build(self): """ - Common build for test cases: 1445 , XXXX + Common build for test cases: 1445 , 1528 """ - # Build a genericx86-64/efi gummiboot image + # Build a genericx86-64/efi systemdboot image bitbake('mtools-native core-image-minimal') @@ -50,3 +51,48 @@ class Systemdboot(OESelftestTestCase): found = os.path.isfile(systemdbootfile) self.assertTrue(found, 'Systemd-Boot file %s not found' % systemdbootfile) + + @OETestID(1528) + @OETestDepends(['systemd_boot.Systemdboot.test_efi_systemdboot_images_can_be_built']) + def test_image_efi_file(self): + + """ + Summary: Check if EFI bootloader for systemd is correctly build + Dependencies: Image was built correctly on testcase 1445 + Steps: 1. Copy bootx64.efi file form the hddimg created + under build/tmp/deploy/images/genericx86-64 + 2. Check bootx64.efi was copied form hddimg + 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 + AutomatedBy: Jose Perez Carranza + """ + + systemdbootfile = os.path.join(get_bb_var('DEPLOY_DIR'), 'images', 'genericx86-64', + 'systemd-bootx64.efi') + systemdbootimage = os.path.join(get_bb_var('DEPLOY_DIR'), 'images', 'genericx86-64', + 'core-image-minimal-genericx86-64.hddimg') + imagebootfile = os.path.join(get_bb_var('DEPLOY_DIR'), 'images', 'genericx86-64', + 'bootx64.efi') + mcopynative = os.path.join(get_bb_var('STAGING_BINDIR_NATIVE'), 'mcopy') + + #Clean environment before start the test + if os.path.isfile(imagebootfile): + runCmd('rm -f %s' % imagebootfile) + + #Step 1 + runCmd('%s -i %s ::EFI/BOOT/bootx64.efi %s' % (mcopynative ,systemdbootimage, + imagebootfile)) + + #Step 2 + found = os.path.isfile(imagebootfile) + self.assertTrue(found, 'bootx64.efi file %s was not copied from image' + % imagebootfile) + + #Step 3 + result = runCmd('md5sum %s %s' % (systemdbootfile, imagebootfile)) + self.assertEqual(result.output.split()[0], result.output.split()[2], + '%s was not correclty generated' % imagebootfile) -- cgit v1.2.3-54-g00ecf