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 <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Paul Eggleton 2015-07-28 11:19:02 +01:00 committed by Richard Purdie
parent 1b88b7426a
commit 5e357ed88f
2 changed files with 83 additions and 0 deletions

View File

@ -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)