| from oeqa.selftest.base import oeSelfTest |
| from oeqa.utils.commands import runCmd, bitbake, get_bb_var, runqemu |
| from oeqa.utils.decorators import testcase |
| import re |
| import os |
| import sys |
| import logging |
| |
| |
| class Gummiboot(oeSelfTest): |
| |
| def _common_setup(self): |
| """ |
| Common setup for test cases: 1101, 1103 |
| """ |
| |
| # Set EFI_PROVIDER = "gummiboot" and MACHINE = "genericx86-64" in conf/local.conf |
| features = 'EFI_PROVIDER = "gummiboot"\n' |
| features += 'MACHINE = "genericx86-64"' |
| self.append_config(features) |
| |
| def _common_build(self): |
| """ |
| Common build for test cases: 1101, 1103 |
| """ |
| |
| # Build a genericx86-64/efi gummiboot image |
| bitbake('syslinux syslinux-native parted-native dosfstools-native mtools-native core-image-minimal') |
| |
| |
| @testcase(1101) |
| def test_efi_gummiboot_images_can_be_built(self): |
| """ |
| Summary: Check if efi/gummiboot images can be built |
| Expected: 1. File gummibootx64.efi should be available in build/tmp/deploy/images/genericx86-64 |
| 2. Efi/gummiboot images can be built |
| Product: oe-core |
| Author: Ionut Chisanovici <ionutx.chisanovici@intel.com> |
| AutomatedBy: Daniel Istrate <daniel.alexandrux.istrate@intel.com> |
| """ |
| |
| # We'd use DEPLOY_DIR_IMAGE here, except that we need its value for |
| # MACHINE="genericx86-64 which is probably not the one configured |
| gummibootfile = os.path.join(get_bb_var('DEPLOY_DIR'), 'images', 'genericx86-64', 'gummibootx64.efi') |
| |
| self._common_setup() |
| |
| # Ensure we're actually testing that this gets built and not that |
| # it was around from an earlier build |
| bitbake('-c cleansstate gummiboot') |
| runCmd('rm -f %s' % gummibootfile) |
| |
| self._common_build() |
| |
| found = os.path.isfile(gummibootfile) |
| self.assertTrue(found, 'Gummiboot file %s not found' % gummibootfile) |
| |
| @testcase(1103) |
| def test_wic_command_can_create_efi_gummiboot_installation_images(self): |
| """ |
| Summary: Check that wic command can create efi/gummiboot installation images |
| Expected: A .direct file in folder /var/tmp/wic/ must be created. |
| Product: oe-core |
| Author: Ionut Chisanovici <ionutx.chisanovici@intel.com> |
| AutomatedBy: Daniel Istrate <daniel.alexandrux.istrate@intel.com> |
| """ |
| |
| self._common_setup() |
| self._common_build() |
| |
| # Create efi/gummiboot installation images |
| wic_create_cmd = 'wic create mkgummidisk -e core-image-minimal' |
| result = runCmd(wic_create_cmd) |
| |
| # Find file written by wic from output |
| res = re.search('(/var/tmp/wic/.*\.direct)', result.output) |
| if res: |
| direct_file = res.group(1) |
| # Check it actually exists |
| if not os.path.exists(direct_file): |
| self.fail('wic reported direct file "%s" does not exist; wic output:\n%s' % (direct_file, result.output)) |
| else: |
| self.fail('No .direct file reported in wic output:\n%s' % result.output) |