fix(image): preserve installer kernel and verified update contracts
This commit is contained in:
@@ -46,6 +46,37 @@ class ImageTests(unittest.TestCase):
|
||||
self.assertEqual(image.kernel_version(self.root), version)
|
||||
self.assertEqual(image.kernel_image(self.root), kernel)
|
||||
|
||||
def test_configured_real_kernel_layout_is_accepted_by_installer(self):
|
||||
from hydra.installer import select_kernel
|
||||
version = '6.18.54-gentoo-dist-bin'
|
||||
(self.root / 'lib/modules' / version).mkdir(parents=True)
|
||||
kernel = self.file('boot/kernel-' + version, 'real Gentoo kernel')
|
||||
image.configure_rootfs(self.root, Path(__file__).resolve().parents[1])
|
||||
self.assertEqual(select_kernel(self.root, None), version)
|
||||
alias = self.root / ('boot/vmlinuz-' + version)
|
||||
self.assertTrue(alias.samefile(kernel))
|
||||
self.assertEqual(image.kernel_image(self.root), alias)
|
||||
|
||||
def test_exported_repository_sync_works_with_extracted_tree(self):
|
||||
import configparser
|
||||
self.kernel()
|
||||
self.file('etc/portage/repos.conf/gentoo.conf',
|
||||
'[gentoo]\nlocation=/var/db/repos/gentoo\nsync-type=git\nauto-sync=no\n')
|
||||
self.file('var/db/repos/gentoo/profiles/repo_name', 'gentoo')
|
||||
image.configure_rootfs(self.root, Path(__file__).resolve().parents[1])
|
||||
config = configparser.ConfigParser()
|
||||
config.read(self.root / 'etc/portage/repos.conf/gentoo.conf')
|
||||
repo = config['gentoo']
|
||||
self.assertEqual(repo['sync-type'], 'rsync')
|
||||
self.assertEqual(repo['sync-uri'], 'rsync://rsync.gentoo.org/gentoo-portage')
|
||||
self.assertEqual(repo['auto-sync'], 'yes')
|
||||
self.assertEqual(repo['sync-rsync-verify-metamanifest'], 'yes')
|
||||
self.assertEqual(repo['sync-openpgp-key-path'], '/usr/share/openpgp-keys/gentoo-release.asc')
|
||||
self.assertFalse((self.root / 'var/db/repos/gentoo/.git').exists())
|
||||
source = Path(__file__).resolve().parents[1]
|
||||
builder_config = (source / 'image/portage/repos.conf/gentoo.conf').read_text()
|
||||
self.assertIn('auto-sync = no', builder_config)
|
||||
|
||||
def test_conflicting_kernel_images_refused(self):
|
||||
version = self.kernel()
|
||||
self.file('boot/kernel-' + version, 'different kernel')
|
||||
|
||||
Reference in New Issue
Block a user