Add tests for mount point assignment with Stratis
This commit is contained in:
parent
e585756f15
commit
f66b5868f5
2 changed files with 163 additions and 0 deletions
|
|
@ -84,6 +84,7 @@ ignore_names = [
|
|||
"_testEncryptedUnlockBTRFSonLUKS_partition_disk",
|
||||
"_testEncryptedUnlockLUKSonRAID_partition_disk",
|
||||
"_testEncryptedUnlockRAIDonLUKS_partition_disk",
|
||||
"_testEncryptedUnlockStratis_partition_disk",
|
||||
"_testEncryptedUnlock_partition_disk",
|
||||
"_testExtendedPartition_partition_disk",
|
||||
"_testHomeReuseFedoraEncrypted_partition_disk",
|
||||
|
|
@ -103,6 +104,7 @@ ignore_names = [
|
|||
"_testReclaimSpaceShrinkBtrfsSubvolumes_partition_disk",
|
||||
"_testReclaimSpaceWindows_partition_disk",
|
||||
"_testReformatBtrfsVolume_partition_disk",
|
||||
"_testStratis_partition_disk",
|
||||
"_testUnusableFormats_partition_disk",
|
||||
"_testVfatWithoutESP_partition_disk",
|
||||
"_testWindows_partition_disk",
|
||||
|
|
|
|||
161
test/check-storage-mountpoints-stratis
Executable file
161
test/check-storage-mountpoints-stratis
Executable file
|
|
@ -0,0 +1,161 @@
|
|||
#!/usr/bin/python3
|
||||
#
|
||||
# Copyright (C) 2026 Red Hat, Inc.
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
|
||||
from anacondalib import VirtInstallMachineCase
|
||||
from installer import Installer
|
||||
from review import Review
|
||||
from storage import EFI_PARTITION_DEFAULT_SIZE, EFI_PARTITION_DEFAULT_SIZE_MB, Storage
|
||||
from testlib import nondestructive, test_main # pylint: disable=import-error
|
||||
|
||||
|
||||
@nondestructive
|
||||
class TestStorageMountPointsStratis(VirtInstallMachineCase):
|
||||
def _testStratis_partition_disk(self):
|
||||
m = self.machine
|
||||
b = self.browser
|
||||
s = Storage(b, m)
|
||||
|
||||
disk = "/dev/vda"
|
||||
poolname = "fedorapool"
|
||||
|
||||
s.partition_disk(disk, [(EFI_PARTITION_DEFAULT_SIZE, "efi"), ("1GiB", "ext4"), ("", None)])
|
||||
m.execute(f"""
|
||||
stratis pool create --no-overprovision {poolname} {disk}3
|
||||
stratis filesystem create --size 5GiB {poolname} root
|
||||
stratis filesystem create --size 5GiB {poolname} home
|
||||
""",
|
||||
environment={"STRATIS_DBUS_TIMEOUT": "360000"})
|
||||
|
||||
self.addCleanup(
|
||||
lambda: m.execute(f"""
|
||||
stratis pool stop --name {poolname} || true
|
||||
""", timeout=90)
|
||||
)
|
||||
|
||||
def testStratis(self):
|
||||
"""
|
||||
Description:
|
||||
Test 'Mount point mapping' screen with Stratis
|
||||
|
||||
Expected results:
|
||||
- The mount point mapping screen should show the Stratis volumes
|
||||
- The review screen should show the correct mountpoints and devices
|
||||
"""
|
||||
b = self.browser
|
||||
m = self.machine
|
||||
i = Installer(b, m, scenario="mount-point-mapping")
|
||||
s = Storage(b, m)
|
||||
r = Review(b, m)
|
||||
|
||||
poolname = "fedorapool"
|
||||
dev = "vda"
|
||||
i.open()
|
||||
i.reach(i.steps.INSTALLATION_METHOD)
|
||||
|
||||
s.select_mountpoint([(dev, True)])
|
||||
|
||||
# verify gathered requests
|
||||
# root partition is not auto-mapped
|
||||
s.check_mountpoint_row(1, "/", "Select a device", True)
|
||||
s.check_mountpoint_row(2, "/boot/efi", "Select a device", False)
|
||||
s.check_mountpoint_row(3, "/boot", "Select a device", False)
|
||||
|
||||
s.select_mountpoint_row_device(1, f"{poolname}/root")
|
||||
s.check_mountpoint_row(1, "/", f"{poolname}/root", True, "stratis xfs")
|
||||
|
||||
s.select_mountpoint_row_device(2, f"{dev}1")
|
||||
s.check_mountpoint_row(2, "/boot/efi", f"{dev}1", False, "EFI System Partition")
|
||||
|
||||
s.select_mountpoint_row_device(3, f"{dev}2")
|
||||
s.check_mountpoint_row(3, "/boot", f"{dev}2", False, "ext4")
|
||||
|
||||
s.add_mountpoint_row()
|
||||
s.select_mountpoint_row_device(4, f"{poolname}/home")
|
||||
s.select_mountpoint_row_mountpoint(4, "/home")
|
||||
s.check_mountpoint_row(4, "/home", f"{poolname}/home", False, "stratis xfs")
|
||||
|
||||
# Toggle reformat option
|
||||
s.select_mountpoint_row_reformat(3)
|
||||
s.check_mountpoint_row_reformat(3, True)
|
||||
|
||||
i.reach(i.steps.REVIEW)
|
||||
|
||||
# verify review screen
|
||||
r.check_disk(dev, "16.1 GB vda (Virtio Block Device)")
|
||||
|
||||
r.check_disk_row(dev, "/boot/efi", "vda1", EFI_PARTITION_DEFAULT_SIZE_MB, False)
|
||||
r.check_disk_row(dev, "/boot", "vda2", "1.07 GB", True, "ext4")
|
||||
r.check_disk_row(dev, "/", "vda3", "5.37 GB", True, "stratis xfs")
|
||||
r.check_disk_row(dev, "/home", "vda3", "5.37 GB", False)
|
||||
|
||||
def _testEncryptedUnlockStratis_partition_disk(self):
|
||||
m = self.machine
|
||||
b = self.browser
|
||||
s = Storage(b, m)
|
||||
|
||||
disk = "/dev/vda"
|
||||
poolname = "fedorapool"
|
||||
|
||||
s.partition_disk(disk, [(EFI_PARTITION_DEFAULT_SIZE, "efi"), ("1GiB", "ext4"), ("", None)])
|
||||
m.execute(f"""
|
||||
echo -n "einszweidrei" > /tmp/stratis-key-file
|
||||
stratis key set --keyfile-path /tmp/stratis-key-file stratiskeyring
|
||||
stratis pool create --no-overprovision --key-desc stratiskeyring {poolname} {disk}3
|
||||
stratis filesystem create --size 10GiB {poolname} root
|
||||
""",
|
||||
environment={"STRATIS_DBUS_TIMEOUT": "360000"})
|
||||
|
||||
self.addCleanup(
|
||||
lambda: m.execute(f"""
|
||||
rm /tmp/stratis-key-file || true
|
||||
stratis key unset stratiskeyring || true
|
||||
stratis pool stop --name {poolname} || true
|
||||
""", timeout=90)
|
||||
)
|
||||
|
||||
def testEncryptedUnlockStratis(self):
|
||||
"""
|
||||
Description:
|
||||
Test that the installer can handle encrypted Stratis pools
|
||||
|
||||
Expected results:
|
||||
- The 'Unlock' dialog is available for unlocking the partitions before entering the mount point mapping
|
||||
- The user can unlock the disk using a passphrase
|
||||
- The user can select the unlocked devices in the mount point mapping
|
||||
table.
|
||||
- The review screen shows the correct mountpoints and devices
|
||||
"""
|
||||
b = self.browser
|
||||
m = self.machine
|
||||
i = Installer(b, m)
|
||||
s = Storage(b, m)
|
||||
r = Review(b, m)
|
||||
|
||||
dev = "vda"
|
||||
poolname = "fedorapool"
|
||||
|
||||
i.open()
|
||||
i.reach(i.steps.INSTALLATION_METHOD)
|
||||
|
||||
# Unlock the stratis pool device
|
||||
s.unlock_all_encrypted()
|
||||
s.unlock_device("einszweidrei", ["STRATIS-fedorapool"], ["STRATIS-fedorapool"])
|
||||
|
||||
s.select_mountpoint([(dev, True)])
|
||||
|
||||
# Select the mountpoints
|
||||
s.select_mountpoint_row_device(1, f"{poolname}/root")
|
||||
s.select_mountpoint_row_device(2, f"{dev}1")
|
||||
s.select_mountpoint_row_device(3, f"{dev}2")
|
||||
|
||||
# Verify the review page
|
||||
i.reach(i.steps.REVIEW)
|
||||
r.check_disk_row(dev, "/boot/efi", "vda1", EFI_PARTITION_DEFAULT_SIZE_MB, False)
|
||||
r.check_disk_row(dev, "/boot", "vda2", "1.07 GB", False)
|
||||
r.check_disk_row(dev, "/", "vda3", "10.7 GB", True, "stratis xfs", True)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
test_main()
|
||||
Loading…
Reference in a new issue