Add several tests to test QA:Testcase_partitioning_custom_btrfs_preserve_home.

This PR adds the `install_btrfs_upload` to install the btrfs based
image, the `btrfs_preserve_home_extras` to prepare and test the data
on the home partition, as well as the `custom_btrfs_preserve_home` that
uses the preinstalled btrfs image and uses its current partitioning to
preserve the home partition and the data on it.
This commit is contained in:
Lukáš Růžička 2020-11-26 13:37:32 +01:00 committed by adamwill
parent adac5323f0
commit ba90c70c8a
9 changed files with 145 additions and 1 deletions

View File

@ -78,7 +78,7 @@ for user in ("jack", "jim"):
testliterals.append(f"user_confirm_{user}") testliterals.append(f"user_confirm_{user}")
# partitioning stuff, there's a bunch of this, all in anaconda.pm # partitioning stuff, there's a bunch of this, all in anaconda.pm
# multiple things use this # multiple things use this
for part in ("swap", "root", "efi", "boot", "vda2"): for part in ("swap", "root", "efi", "boot", "home", "vda2"):
testliterals.append(f"anaconda_part_select_{part}") testliterals.append(f"anaconda_part_select_{part}")
testliterals.append(f"anaconda_blivet_part_inactive_{part}") testliterals.append(f"anaconda_blivet_part_inactive_{part}")
# select_disks # select_disks

View File

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 669,
"ypos": 398,
"width": 56,
"height": 16,
"type": "match"
}
],
"properties": [],
"tags": [
"anaconda_part_confirm_delete"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

View File

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 49,
"ypos": 370,
"width": 56,
"height": 22,
"type": "match"
}
],
"properties": [],
"tags": [
"anaconda_part_select_home"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

View File

@ -984,6 +984,20 @@
"ROOT_PASSWORD": "weakpassword" "ROOT_PASSWORD": "weakpassword"
} }
}, },
"install_btrfs_preserve_home": {
"profiles": {
"fedora-Server-dvd-iso-aarch64-*-aarch64": 10,
"fedora-Server-dvd-iso-ppc64le-*-ppc64le": 10,
"fedora-Server-dvd-iso-x86_64-*-64bit": 10
},
"settings": {
"PARTITIONING": "custom_btrfs_preserve_home",
"INSTALL": 1,
"ROOT_PASSWORD": "weakpassword",
"POSTINSTALL": "btrfs_preserve_home_check_content",
"HDD_1": "disk_f%CURRREL%_desktop_4_%ARCH%.img"
}
},
"install_cyrillic_language": { "install_cyrillic_language": {
"profiles": { "profiles": {
"fedora-universal-aarch64-*-aarch64": 40, "fedora-universal-aarch64-*-aarch64": 40,

View File

@ -0,0 +1,24 @@
use base "installedtest";
use strict;
use testapi;
use utils;
sub run {
my $self=shift;
bypass_1691487 unless (get_var("DESKTOP"));
# switch to TTY3 for both, graphical and console tests
$self->root_console(tty=>3);
# The pre-created image has a special file left in the home
# directory. This checks that the file has been left there
# correctly after system reinstall.
assert_script_run "ls /home/home_preserved";
}
sub test_flags {
return { fatal => 1 };
}
1;
# vim: set sw=4 et:

View File

@ -1,6 +1,7 @@
use base "anacondatest"; use base "anacondatest";
use strict; use strict;
use testapi; use testapi;
use utils;
use anaconda; use anaconda;
sub run { sub run {

View File

@ -0,0 +1,75 @@
use base "anacondatest";
use strict;
use testapi;
use utils;
use anaconda;
sub use_current_partition {
my ($partition, $reformat) = @_;
# Select the partition
assert_and_click "anaconda_part_select_$partition";
# Select the mountpoint field
send_key_until_needlematch("anaconda_part_mountpoint_selected", "tab", 20);
# Type in the mountpoint
if ($partition eq "root") {
type_very_safely "/";
}
else {
type_very_safely "/$partition";
}
# Click on reformat if we so wish
if ($reformat == 1) {
assert_and_click "anaconda_part_device_reformat";
}
# Update chosen settings
assert_and_click "anaconda_part_update_settings";
# Wait for the UI to settle down.
wait_still_screen 5;
}
sub run {
my $self = shift;
# Go to INSTALLATION DESTINATION and ensure the disk is selected.
# Because PARTITIONING starts with 'custom_', this will select custom.
select_disks();
assert_and_click "anaconda_spoke_done";
# Manual partitioning spoke should be displayed. Select BTRFS
# partitioning scheme
custom_scheme_select("btrfs");
# Select the currently installed system
assert_and_click "anaconda_part_use_current";
# Use the home partition from the current scheme
use_current_partition("home", 0);
# Use the boot partition from the current scheme
use_current_partition("boot", 1);
# Select the root partition from the current scheme
# and delete it
assert_and_click "anaconda_part_select_root";
assert_and_click "anaconda_part_delete";
assert_and_click "anaconda_part_confirm_delete";
# Add the new root partition to the scheme
assert_and_click "anaconda_part_add";
type_very_safely "/\n";
# Confirm changes
assert_and_click "anaconda_spoke_done";
assert_and_click "anaconda_part_accept_changes";
# Anaconda hub
assert_screen "anaconda_main_hub", 300; #
}
sub test_flags {
return { fatal => 1 };
}
1;
# vim: set sw=4 et: