3232class GrubBase (object ):
3333 virt_mode = None
3434 kernel = None
35+ force_dracut = False
3536
3637 def setUp (self ):
3738 super (GrubBase , self ).setUp ()
@@ -44,9 +45,12 @@ def setUp(self):
4445 self .skipTest (
4546 "Template {} not supported by this test" .format (self .template )
4647 )
48+ if "dracut" in self .id () and not self .template .startswith ("debian-" ):
49+ self .skipTest ("dracut already tested in default test for Fedora" )
4750
4851 def install_packages (self , vm ):
4952 if self .template .startswith ("fedora-" ):
53+ assert not self .force_dracut , "Fedora uses dracut by default already"
5054 cmd_install1 = (
5155 "dnf clean expire-cache && "
5256 "dnf install -y qubes-kernel-vm-support grub2-tools"
@@ -59,6 +63,9 @@ def install_packages(self, vm):
5963 "qubes-kernel-vm-support grub2-common"
6064 )
6165 cmd_install2 = "apt-get install -y linux-image-amd64"
66+ if self .force_dracut :
67+ cmd_install1 += " dracut"
68+ cmd_install2 += " && dracut -f"
6269 cmd_update_grub = "mkdir -p /boot/grub && update-grub2"
6370 else :
6471 assert False , "Unsupported template?!"
@@ -177,6 +184,14 @@ def test_010_template_based_vm(self):
177184
178185 self .assertXenScrubPagesEnabled (self .test_template )
179186
187+ def test_001_standalone_vm_dracut (self ):
188+ self .force_dracut = True
189+ self .test_000_standalone_vm ()
190+
191+ def test_011_template_based_vm_dracut (self ):
192+ self .force_dracut = True
193+ self .test_010_template_based_vm ()
194+
180195
181196@unittest .skipUnless (
182197 os .path .exists ("/var/lib/qubes/vm-kernels/pvgrub2" ),
0 commit comments