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,6 +45,8 @@ 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 os .environ .get ("QUBES_TEST_SKIP_KERNEL_INSTALL" ) == "1" :
@@ -54,6 +57,9 @@ def install_packages(self, vm):
5457 "QUBES_TEST_SKIP_KERNEL_INSTALL=1 in environment"
5558 )
5659 if self .template .startswith ("fedora-" ):
60+ assert (
61+ not self .force_dracut
62+ ), "Fedora uses dracut by default already"
5763 cmd_install1 = (
5864 "dnf clean expire-cache && "
5965 "dnf install -y qubes-kernel-vm-support grub2-tools"
@@ -66,6 +72,9 @@ def install_packages(self, vm):
6672 "qubes-kernel-vm-support grub2-common"
6773 )
6874 cmd_install2 = "apt-get install -y linux-image-amd64"
75+ if self .force_dracut :
76+ cmd_install1 += " dracut"
77+ cmd_install2 += " && dracut -f"
6978 cmd_update_grub = "mkdir -p /boot/grub && update-grub2"
7079 else :
7180 assert False , "Unsupported template?!"
@@ -192,6 +201,14 @@ def test_010_template_based_vm(self):
192201
193202 self .assertXenScrubPagesEnabled (self .test_template )
194203
204+ def test_001_standalone_vm_dracut (self ):
205+ self .force_dracut = True
206+ self .test_000_standalone_vm ()
207+
208+ def test_011_template_based_vm_dracut (self ):
209+ self .force_dracut = True
210+ self .test_010_template_based_vm ()
211+
195212
196213@unittest .skipUnless (
197214 os .path .exists ("/var/lib/qubes/vm-kernels/pvgrub2" ),
0 commit comments