diff options
Diffstat (limited to 'meta-yocto-bsp/lib/oeqa/selftest/gummiboot.py')
-rw-r--r-- | meta-yocto-bsp/lib/oeqa/selftest/gummiboot.py | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/meta-yocto-bsp/lib/oeqa/selftest/gummiboot.py b/meta-yocto-bsp/lib/oeqa/selftest/gummiboot.py new file mode 100644 index 0000000000..00aa36f60d --- /dev/null +++ b/meta-yocto-bsp/lib/oeqa/selftest/gummiboot.py | |||
@@ -0,0 +1,83 @@ | |||
1 | from oeqa.selftest.base import oeSelfTest | ||
2 | from oeqa.utils.commands import runCmd, bitbake, get_bb_var, runqemu | ||
3 | from oeqa.utils.decorators import testcase | ||
4 | import re | ||
5 | import os | ||
6 | import sys | ||
7 | import logging | ||
8 | |||
9 | |||
10 | class Gummiboot(oeSelfTest): | ||
11 | |||
12 | def _common_setup(self): | ||
13 | """ | ||
14 | Common setup for test cases: 1101, 1103 | ||
15 | """ | ||
16 | |||
17 | # Set EFI_PROVIDER = "gummiboot" and MACHINE = "genericx86-64" in conf/local.conf | ||
18 | features = 'EFI_PROVIDER = "gummiboot"\n' | ||
19 | features += 'MACHINE = "genericx86-64"' | ||
20 | self.append_config(features) | ||
21 | |||
22 | def _common_build(self): | ||
23 | """ | ||
24 | Common build for test cases: 1101, 1103 | ||
25 | """ | ||
26 | |||
27 | # Build a genericx86-64/efi gummiboot image | ||
28 | bitbake('syslinux syslinux-native parted-native dosfstools-native mtools-native core-image-minimal') | ||
29 | |||
30 | |||
31 | @testcase(1101) | ||
32 | def test_efi_gummiboot_images_can_be_built(self): | ||
33 | """ | ||
34 | Summary: Check if efi/gummiboot images can be built | ||
35 | Expected: 1. File gummibootx64.efi should be available in build/tmp/deploy/images/genericx86-64 | ||
36 | 2. Efi/gummiboot images can be built | ||
37 | Product: oe-core | ||
38 | Author: Ionut Chisanovici <ionutx.chisanovici@intel.com> | ||
39 | AutomatedBy: Daniel Istrate <daniel.alexandrux.istrate@intel.com> | ||
40 | """ | ||
41 | |||
42 | # We'd use DEPLOY_DIR_IMAGE here, except that we need its value for | ||
43 | # MACHINE="genericx86-64 which is probably not the one configured | ||
44 | gummibootfile = os.path.join(get_bb_var('DEPLOY_DIR'), 'images', 'genericx86-64', 'gummibootx64.efi') | ||
45 | |||
46 | self._common_setup() | ||
47 | |||
48 | # Ensure we're actually testing that this gets built and not that | ||
49 | # it was around from an earlier build | ||
50 | bitbake('-c cleansstate gummiboot') | ||
51 | runCmd('rm -f %s' % gummibootfile) | ||
52 | |||
53 | self._common_build() | ||
54 | |||
55 | found = os.path.isfile(gummibootfile) | ||
56 | self.assertTrue(found, 'Gummiboot file %s not found' % gummibootfile) | ||
57 | |||
58 | @testcase(1103) | ||
59 | def test_wic_command_can_create_efi_gummiboot_installation_images(self): | ||
60 | """ | ||
61 | Summary: Check that wic command can create efi/gummiboot installation images | ||
62 | Expected: A .direct file in folder /var/tmp/wic/ must be created. | ||
63 | Product: oe-core | ||
64 | Author: Ionut Chisanovici <ionutx.chisanovici@intel.com> | ||
65 | AutomatedBy: Daniel Istrate <daniel.alexandrux.istrate@intel.com> | ||
66 | """ | ||
67 | |||
68 | self._common_setup() | ||
69 | self._common_build() | ||
70 | |||
71 | # Create efi/gummiboot installation images | ||
72 | wic_create_cmd = 'wic create mkgummidisk -e core-image-minimal' | ||
73 | result = runCmd(wic_create_cmd) | ||
74 | |||
75 | # Find file written by wic from output | ||
76 | res = re.search('(/var/tmp/wic/.*\.direct)', result.output) | ||
77 | if res: | ||
78 | direct_file = res.group(1) | ||
79 | # Check it actually exists | ||
80 | if not os.path.exists(direct_file): | ||
81 | self.fail('wic reported direct file "%s" does not exist; wic output:\n%s' % (direct_file, result.output)) | ||
82 | else: | ||
83 | self.fail('No .direct file reported in wic output:\n%s' % result.output) | ||