fix(test): select persistent UEFI test media without changing boot order

This commit is contained in:
Codex
2026-10-13 22:49:33 +03:00
parent 3c15890823
commit 6058a0660e
5 changed files with 185 additions and 15 deletions
+24
View File
@@ -63,6 +63,30 @@ class SmokeTests(unittest.TestCase):
self.assertNotIn('media=cdrom', ' '.join(argv))
self.assertNotIn('-cdrom', argv)
def test_persistent_optical_drive_keeps_topology_with_no_installed_medium(self):
disk = self.root / 'disk.qcow2'
self.mod.reserve_disk(disk)
iso = self.root / 'trusted.iso'
iso.write_bytes(b'ISO')
optical = []
for medium in (iso, None):
argv = self.mod.qemu_argv('qemu', self.root, disk, self.code,
self.variables, medium, 2048, keep_cdrom_drive=True)
drives = [argv[i + 1] for i, value in enumerate(argv[:-1]) if value == '-drive']
cdrom = [dict(field.split('=', 1) for field in drive.split(','))
for drive in drives if 'media=cdrom' in drive]
self.assertEqual(len(cdrom), 1)
self.assertEqual(cdrom[0]['if'], 'ide')
self.assertEqual(cdrom[0]['index'], '0')
self.assertEqual(cdrom[0]['id'], 'acceptance-cdrom')
self.assertEqual(cdrom[0]['readonly'], 'on')
optical.append(cdrom[0])
self.assertEqual(optical[0].pop('file'), str(iso))
self.assertEqual(optical[0].pop('format'), 'raw')
self.assertNotIn('file', optical[1], 'Installed boot must have no ISO medium')
self.assertNotIn('format', optical[1], 'An empty drive must not request a raw block backend')
self.assertEqual(optical[0], optical[1])
def test_hardlinked_disk_is_refused(self):
disk = self.root / 'disk.qcow2'
self.mod.reserve_disk(disk)