diff options
author | Jose Perez Carranza <jose.perez.carranza@linux.intel.com> | 2017-06-15 05:49:06 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2017-06-23 14:13:59 +0100 |
commit | 00e2566f0ee0bd1ca29d0fe6239b61471865bfd9 (patch) | |
tree | c93367d581fbfc4095e16d95a60b28035d0f1cbe /meta-yocto-bsp/lib/oeqa | |
parent | 14d67c0f7c125786899eaa131c4fbbf0762766ec (diff) | |
download | poky-00e2566f0ee0bd1ca29d0fe6239b61471865bfd9.tar.gz |
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 <jose.perez.carranza@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta-yocto-bsp/lib/oeqa')
-rw-r--r-- | meta-yocto-bsp/lib/oeqa/selftest/cases/systemd_boot.py | 54 |
1 files changed, 50 insertions, 4 deletions
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 | |||
2 | 2 | ||
3 | from oeqa.selftest.case import OESelftestTestCase | 3 | from oeqa.selftest.case import OESelftestTestCase |
4 | from oeqa.core.decorator.oeid import OETestID | 4 | from oeqa.core.decorator.oeid import OETestID |
5 | from oeqa.core.decorator.depends import OETestDepends | ||
5 | from oeqa.utils.commands import runCmd, bitbake, get_bb_var, runqemu | 6 | from oeqa.utils.commands import runCmd, bitbake, get_bb_var, runqemu |
6 | 7 | ||
7 | class Systemdboot(OESelftestTestCase): | 8 | class Systemdboot(OESelftestTestCase): |
8 | def _common_setup(self): | 9 | def _common_setup(self): |
9 | """ | 10 | """ |
10 | Common setup for test cases: 1445, XXXX | 11 | Common setup for test cases: 1445, 1528 |
11 | """ | 12 | """ |
12 | 13 | ||
13 | # Set EFI_PROVIDER = "gummiboot" and MACHINE = "genericx86-64" in conf/local.conf | 14 | # Set EFI_PROVIDER = "systemdboot" and MACHINE = "genericx86-64" in conf/local.conf |
14 | features = 'EFI_PROVIDER = "systemd-boot"\n' | 15 | features = 'EFI_PROVIDER = "systemd-boot"\n' |
15 | features += 'MACHINE = "genericx86-64"' | 16 | features += 'MACHINE = "genericx86-64"' |
16 | self.append_config(features) | 17 | self.append_config(features) |
17 | 18 | ||
18 | def _common_build(self): | 19 | def _common_build(self): |
19 | """ | 20 | """ |
20 | Common build for test cases: 1445 , XXXX | 21 | Common build for test cases: 1445 , 1528 |
21 | """ | 22 | """ |
22 | 23 | ||
23 | # Build a genericx86-64/efi gummiboot image | 24 | # Build a genericx86-64/efi systemdboot image |
24 | bitbake('mtools-native core-image-minimal') | 25 | bitbake('mtools-native core-image-minimal') |
25 | 26 | ||
26 | 27 | ||
@@ -50,3 +51,48 @@ class Systemdboot(OESelftestTestCase): | |||
50 | 51 | ||
51 | found = os.path.isfile(systemdbootfile) | 52 | found = os.path.isfile(systemdbootfile) |
52 | self.assertTrue(found, 'Systemd-Boot file %s not found' % systemdbootfile) | 53 | self.assertTrue(found, 'Systemd-Boot file %s not found' % systemdbootfile) |
54 | |||
55 | @OETestID(1528) | ||
56 | @OETestDepends(['systemd_boot.Systemdboot.test_efi_systemdboot_images_can_be_built']) | ||
57 | def test_image_efi_file(self): | ||
58 | |||
59 | """ | ||
60 | Summary: Check if EFI bootloader for systemd is correctly build | ||
61 | Dependencies: Image was built correctly on testcase 1445 | ||
62 | Steps: 1. Copy bootx64.efi file form the hddimg created | ||
63 | under build/tmp/deploy/images/genericx86-64 | ||
64 | 2. Check bootx64.efi was copied form hddimg | ||
65 | 3. Verify the checksums from the copied and previously | ||
66 | created file are equal. | ||
67 | Expected : Systemd-bootx64.efi and bootx64.efi should be the same | ||
68 | hence checksums should be equal. | ||
69 | Product: oe-core | ||
70 | Author: Jose Perez Carranza <jose.perez.carranza at linux-intel.com> | ||
71 | AutomatedBy: Jose Perez Carranza <jose.perez.carranza at linux-intel.com> | ||
72 | """ | ||
73 | |||
74 | systemdbootfile = os.path.join(get_bb_var('DEPLOY_DIR'), 'images', 'genericx86-64', | ||
75 | 'systemd-bootx64.efi') | ||
76 | systemdbootimage = os.path.join(get_bb_var('DEPLOY_DIR'), 'images', 'genericx86-64', | ||
77 | 'core-image-minimal-genericx86-64.hddimg') | ||
78 | imagebootfile = os.path.join(get_bb_var('DEPLOY_DIR'), 'images', 'genericx86-64', | ||
79 | 'bootx64.efi') | ||
80 | mcopynative = os.path.join(get_bb_var('STAGING_BINDIR_NATIVE'), 'mcopy') | ||
81 | |||
82 | #Clean environment before start the test | ||
83 | if os.path.isfile(imagebootfile): | ||
84 | runCmd('rm -f %s' % imagebootfile) | ||
85 | |||
86 | #Step 1 | ||
87 | runCmd('%s -i %s ::EFI/BOOT/bootx64.efi %s' % (mcopynative ,systemdbootimage, | ||
88 | imagebootfile)) | ||
89 | |||
90 | #Step 2 | ||
91 | found = os.path.isfile(imagebootfile) | ||
92 | self.assertTrue(found, 'bootx64.efi file %s was not copied from image' | ||
93 | % imagebootfile) | ||
94 | |||
95 | #Step 3 | ||
96 | result = runCmd('md5sum %s %s' % (systemdbootfile, imagebootfile)) | ||
97 | self.assertEqual(result.output.split()[0], result.output.split()[2], | ||
98 | '%s was not correclty generated' % imagebootfile) | ||