[poky] [PATCH v3] systemdboot: Add Test to check boot file is created correctly

Jianxun Zhang jianxun.zhang at linux.intel.com
Mon Sep 26 13:56:45 PDT 2016


Jose,
Could you confirm this is merged in poky? I don’t see it today.

Thanks

> On Aug 30, 2016, at 1:17 PM, Jose Perez Carranza <jose.perez.carranza at intel.com> wrote:
> 
>   Add Test case to verify if EFI bootloader for
>   systemd boot is correctly build inside of image.
> 
> [YOCTO #9903]
> 
> Signed-off-by: Jose Perez Carranza <jose.perez.carranza at intel.com>
> ---
> meta-yocto-bsp/lib/oeqa/selftest/systemd_boot.py | 64 ++++++++++++++++++++----
> 1 file changed, 55 insertions(+), 9 deletions(-)
> 
> diff --git a/meta-yocto-bsp/lib/oeqa/selftest/systemd_boot.py b/meta-yocto-bsp/lib/oeqa/selftest/systemd_boot.py
> index f7f74db..9660c87 100644
> --- a/meta-yocto-bsp/lib/oeqa/selftest/systemd_boot.py
> +++ b/meta-yocto-bsp/lib/oeqa/selftest/systemd_boot.py
> @@ -1,20 +1,19 @@
> from oeqa.selftest.base import oeSelfTest
> from oeqa.utils.commands import runCmd, bitbake, get_bb_var, runqemu
> -from oeqa.utils.decorators import testcase
> +from oeqa.utils.decorators import testcase, skipUnlessPassed
> import re
> import os
> import sys
> import logging
> 
> -
> class Systemdboot(oeSelfTest):
> 
>     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)
> @@ -24,15 +23,15 @@ class Systemdboot(oeSelfTest):
>         Common build for test cases: 1445 , XXXX
>         """
> 
> -        # Build a genericx86-64/efi gummiboot image
> +        # Build a genericx86-64/efi systemdboot image
>         bitbake('mtools-native core-image-minimal')
> 
> -
>     @testcase(1445)
> -    def test_efi_systemdboot_images_can_be_built(self):
> +    def test_efi_image_build(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
> +        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 at intel.com>
> @@ -41,7 +40,8 @@ class Systemdboot(oeSelfTest):
> 
>         # We'd use DEPLOY_DIR_IMAGE here, except that we need its value for
>         # MACHINE="genericx86-64 which is probably not the one configured
> -        systemdbootfile = os.path.join(get_bb_var('DEPLOY_DIR'), 'images', 'genericx86-64', 'systemd-bootx64.efi')
> +        systemdbootfile = os.path.join(get_bb_var('DEPLOY_DIR'), 'images', 'genericx86-64',
> +                                       'systemd-bootx64.efi')
> 
>         self._common_setup()
> 
> @@ -54,3 +54,49 @@ class Systemdboot(oeSelfTest):
> 
>         found = os.path.isfile(systemdbootfile)
>         self.assertTrue(found, 'Systemd-Boot file %s not found' % systemdbootfile)
> +
> +
> +    @testcase(1528)
> +    @skipUnlessPassed('test_efi_image_build')
> +    def test_image_efi_file(self):
> +        """
> +        Summary:      Check if EFI bootloader for systemd is correctly build
> +        Dependencies: Image was built correctly on test case 1445
> +        Steps:        1. Copy bootx64.efi file from 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 <jose.perez.carranza at intel.com>
> +        AutomatedBy:  Jose Perez Carranza <jose.perez.carranza at intel.com>
> +        """
> +
> +        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],
> +                         'checksums from %s and %s are different'
> +                         % (imagebootfile, systemdbootfile))
> -- 
> 1.9.1
> 



More information about the poky mailing list