From 5e357ed88f40e471f7e3b7ea3d697410a9cb980b Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Tue, 28 Jul 2015 11:19:02 +0100 Subject: oe-selftest: restore gummiboot tests These are the gummiboot tests recently removed from OE-Core, with the following changes: * Make them use MACHINE = "genericx86-64" instead of "nuc" and remove all usage of meta-intel * Use DEPLOY_DIR instead of assuming build directory will be in the default path relative to COREBASE * Fix build test to actually check if the file was created as part of the test instead of possibly being around from a previous build * Fix wic test to actually check the output to find the name of the .direct file that wic has created, instead of passing if any .direct file happens to exist in /var/tmp/wic (We can now add these in this layer courtesy of Chris Larson's OE-Core commit 182b8ed9f26ed8b6a8eb6dcaec82db9aca14b010). (From meta-yocto rev: 8e945e39327869c6b53959c5eb324ba3e4cb0b20) Signed-off-by: Paul Eggleton Signed-off-by: Richard Purdie --- meta-yocto-bsp/lib/oeqa/selftest/__init__.py | 0 meta-yocto-bsp/lib/oeqa/selftest/gummiboot.py | 83 +++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 meta-yocto-bsp/lib/oeqa/selftest/__init__.py create mode 100644 meta-yocto-bsp/lib/oeqa/selftest/gummiboot.py (limited to 'meta-yocto-bsp') diff --git a/meta-yocto-bsp/lib/oeqa/selftest/__init__.py b/meta-yocto-bsp/lib/oeqa/selftest/__init__.py new file mode 100644 index 0000000000..e69de29bb2 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 @@ +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 + AutomatedBy: Daniel Istrate + """ + + # 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 + AutomatedBy: Daniel Istrate + """ + + 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) -- cgit v1.2.3-54-g00ecf