kiwi-el8/test/unit/bootloader/config/bootloader_spec_base_test.py
Marcus Schäfer 872678ea14
Don't use kernel-install
kernel-install does a lot more then making the kernel available
to the ESP. It calls dracut, it creates loader entries and all
that is unexpected and also breaks the boot because the way
dracut is called in the image build case where host != target
leads to broken results. This commit refactors the systemd-boot
support in kiwi to prevent the use of kernel-install
2023-11-08 12:47:32 +01:00

95 lines
3.0 KiB
Python

from mock import (
patch, Mock
)
from pytest import (
raises, fixture
)
from kiwi.defaults import Defaults
from kiwi.xml_state import XMLState
from kiwi.xml_description import XMLDescription
from kiwi.bootloader.config.bootloader_spec_base import BootLoaderSpecBase
class TestBootLoaderSpecBase:
@fixture(autouse=True)
def inject_fixtures(self, caplog):
self._caplog = caplog
def setup(self):
Defaults.set_platform_name('x86_64')
description = XMLDescription(
'../data/example_config.xml'
)
self.state = XMLState(
description.load()
)
self.bootloader = BootLoaderSpecBase(
self.state, 'root_dir'
)
def setup_method(self, cls):
self.setup()
@patch.object(BootLoaderSpecBase, 'setup_loader')
def test_setup_disk_image_config(self, mock_setup_loader):
self.bootloader.get_boot_cmdline = Mock(return_value='')
self.bootloader.setup_disk_image_config(
'boot_uuid', 'root_uuid', 'hypervisor',
'kernel', 'initrd', boot_options={
'root_device': 'rootdev', 'boot_device': 'bootdev'
}
)
mock_setup_loader.assert_called_once_with('disk')
def test_setup_install_image_config(self):
# just pass
self.bootloader.setup_install_image_config(
'mbrid', 'hypervisor', 'kernel', 'initrd'
)
def test_setup_live_image_config(self):
# just pass
self.bootloader.setup_live_image_config(
'mbrid', 'hypervisor', 'kernel', 'initrd'
)
@patch.object(BootLoaderSpecBase, 'create_loader_image')
def test_setup_disk_boot_images(self, mock_create_loader_image):
self.bootloader.setup_disk_boot_images('uuid')
mock_create_loader_image.assert_called_once_with('disk')
@patch.object(BootLoaderSpecBase, 'create_loader_image')
def test_setup_install_boot_images(self, mock_create_loader_image):
self.bootloader.setup_install_boot_images('mbrid')
mock_create_loader_image.assert_called_once_with('install(iso)')
@patch.object(BootLoaderSpecBase, 'create_loader_image')
def test_setup_live_boot_images(self, mock_create_loader_image):
self.bootloader.setup_live_boot_images('mbrid')
mock_create_loader_image.assert_called_once_with('live(iso)')
def test_setup_loader(self):
with raises(NotImplementedError):
self.bootloader.setup_loader('target')
def test_set_loader_entry(self):
with raises(NotImplementedError):
self.bootloader.set_loader_entry('root_dir', 'target')
def test_create_loader_image(self):
with raises(NotImplementedError):
self.bootloader.create_loader_image('target')
def test_write(self):
# just pass
self.bootloader.write()
def test_setup_sysconfig_bootloader(self):
# just pass
self.bootloader.setup_sysconfig_bootloader()
def test_write_meta_data(self):
# just pass
self.bootloader.write_meta_data()