summaryrefslogtreecommitdiffstats
path: root/import-layers/yocto-poky/meta-yocto-bsp/lib/oeqa/selftest/gummiboot.py
diff options
context:
space:
mode:
Diffstat (limited to 'import-layers/yocto-poky/meta-yocto-bsp/lib/oeqa/selftest/gummiboot.py')
-rw-r--r--import-layers/yocto-poky/meta-yocto-bsp/lib/oeqa/selftest/gummiboot.py83
1 files changed, 83 insertions, 0 deletions
diff --git a/import-layers/yocto-poky/meta-yocto-bsp/lib/oeqa/selftest/gummiboot.py b/import-layers/yocto-poky/meta-yocto-bsp/lib/oeqa/selftest/gummiboot.py
new file mode 100644
index 000000000..00aa36f60
--- /dev/null
+++ b/import-layers/yocto-poky/meta-yocto-bsp/lib/oeqa/selftest/gummiboot.py
@@ -0,0 +1,83 @@
+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)
OpenPOWER on IntegriCloud