1*4882a593Smuzhiyun# Based on runqemu.py test file 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# Copyright (c) 2017 Wind River Systems, Inc. 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyun# SPDX-License-Identifier: MIT 6*4882a593Smuzhiyun# 7*4882a593Smuzhiyun 8*4882a593Smuzhiyunimport re 9*4882a593Smuzhiyun 10*4882a593Smuzhiyunfrom oeqa.selftest.case import OESelftestTestCase 11*4882a593Smuzhiyunfrom oeqa.utils.commands import bitbake, runqemu, get_bb_var 12*4882a593Smuzhiyun 13*4882a593Smuzhiyunclass GenericEFITest(OESelftestTestCase): 14*4882a593Smuzhiyun """EFI booting test class""" 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun cmd_common = "runqemu nographic serial wic ovmf" 17*4882a593Smuzhiyun efi_provider = "systemd-boot" 18*4882a593Smuzhiyun image = "core-image-minimal" 19*4882a593Smuzhiyun machine = "qemux86-64" 20*4882a593Smuzhiyun recipes_built = False 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun @classmethod 23*4882a593Smuzhiyun def setUpLocal(self): 24*4882a593Smuzhiyun super(GenericEFITest, self).setUpLocal(self) 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun self.write_config(self, 27*4882a593Smuzhiyun""" 28*4882a593SmuzhiyunEFI_PROVIDER = "%s" 29*4882a593SmuzhiyunIMAGE_FSTYPES:pn-%s:append = " wic" 30*4882a593SmuzhiyunMACHINE = "%s" 31*4882a593SmuzhiyunMACHINE_FEATURES:append = " efi" 32*4882a593SmuzhiyunWKS_FILE = "efi-bootdisk.wks.in" 33*4882a593SmuzhiyunIMAGE_INSTALL:append = " grub-efi systemd-boot kernel-image-bzimage" 34*4882a593Smuzhiyun""" 35*4882a593Smuzhiyun% (self.efi_provider, self.image, self.machine)) 36*4882a593Smuzhiyun if not self.recipes_built: 37*4882a593Smuzhiyun bitbake("ovmf") 38*4882a593Smuzhiyun bitbake(self.image) 39*4882a593Smuzhiyun self.recipes_built = True 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun @classmethod 42*4882a593Smuzhiyun def test_boot_efi(self): 43*4882a593Smuzhiyun """Test generic boot partition with qemu""" 44*4882a593Smuzhiyun cmd = "%s %s" % (self.cmd_common, self.machine) 45*4882a593Smuzhiyun with runqemu(self.image, ssh=False, launch_cmd=cmd) as qemu: 46*4882a593Smuzhiyun self.assertTrue(qemu.runner.logged, "Failed: %s" % cmd) 47