Replace blivet tests with custom GUI tests #51
@ -9,7 +9,7 @@ use testapi;
|
|||||||
use utils;
|
use utils;
|
||||||
use bugzilla;
|
use bugzilla;
|
||||||
|
|
||||||
our @EXPORT = qw/select_disks custom_scheme_select custom_blivet_add_partition custom_blivet_format_partition custom_blivet_resize_partition custom_change_type custom_change_fs custom_change_device custom_delete_part get_full_repo check_help_on_pane get_mirrorlist_url crash_anaconda_text report_bug_text/;
|
our @EXPORT = qw/select_disks custom_scheme_select custom_add_partition custom_blivet_add_partition custom_blivet_format_partition custom_blivet_resize_partition custom_change_type custom_change_fs custom_change_device custom_delete_part get_full_repo check_help_on_pane get_mirrorlist_url crash_anaconda_text report_bug_text/;
|
||||||
|
|
||||||
sub select_disks {
|
sub select_disks {
|
||||||
# Handles disk selection. Has one optional argument - number of
|
# Handles disk selection. Has one optional argument - number of
|
||||||
@ -175,8 +175,67 @@ sub custom_blivet_add_partition {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub custom_add_partition {
|
||||||
|
# Used to add partition on Rocky custom-gui partitioning screen
|
||||||
|
# in Anaconda. Should be called when custom-gui is displayed and free space is selected.
|
||||||
|
# You can pass device type for partition (needle tagged anaconda_custom_devicetype_$devicetype should exist), size of that partition in MiBs, desired filesystem of that partition
|
||||||
|
# (anaconda_custom_part_fs_$filesystem should exist) and mountpoint of that partition (e. g. string "/boot").
|
||||||
|
my %args = (
|
||||||
|
devicetype => "",
|
||||||
|
raid1 => 0,
|
||||||
|
size => 0,
|
||||||
|
filesystem => "",
|
||||||
|
mountpoint => "",
|
||||||
|
@_
|
||||||
|
);
|
||||||
|
$args{devicetype} = "raid" if $args{raid1};
|
||||||
|
|
||||||
|
assert_and_click "anaconda_custom_part_add";
|
||||||
|
|
||||||
|
if ($args{mountpoint}) {
|
||||||
|
assert_and_click "anaconda_custom_mountpoint";
|
||||||
|
type_safely $args{mountpoint};
|
||||||
|
# esc to dismiss the dropdown that appears when we add a mountpoint
|
||||||
|
send_key "esc";
|
||||||
|
}
|
||||||
|
if ($args{size}) {
|
||||||
|
assert_and_click "anaconda_custom_size";
|
||||||
|
# size input can contain whole set of different values, so we can't match it with needle
|
||||||
|
type_safely $args{size};
|
||||||
|
}
|
||||||
|
assert_and_click "anaconda_custom_btn_add_mountpoint";
|
||||||
|
|
||||||
|
# if ($args{raid1}) {
|
||||||
|
# # for RAID1, two disks should be selected
|
||||||
|
# send_key "tab";
|
||||||
|
# send_key "down";
|
||||||
|
# send_key "spc";
|
||||||
|
# assert_screen "anaconda_custom_vdb_selected";
|
||||||
|
#
|
||||||
|
# assert_and_click "anaconda_custom_raidlevel_select";
|
||||||
|
# mouse_set(10, 10);
|
||||||
|
# assert_and_click "anaconda_custom_raidlevel_raid1";
|
||||||
|
# }
|
||||||
|
|
||||||
|
# if no devicetype was specified or devicetype is already selected, do nothing
|
||||||
|
if ($args{devicetype}) && !check_screen("anaconda_custom_part_fs_$args{devicetype}_selected", 5)) {
|
||||||
|
assert_and_click "anaconda_custom_part_devicetype";
|
||||||
|
mouse_set(10, 10);
|
||||||
|
assert_and_click "anaconda_custom_part_devicetype_$args{devicetype}";
|
||||||
|
}
|
||||||
|
# if no filesystem was specified or filesystem is already selected, do nothing
|
||||||
|
if ($args{filesystem} && !check_screen("anaconda_custom_part_fs_$args{filesystem}_selected", 5)) {
|
||||||
|
assert_and_click "anaconda_custom_part_fs";
|
||||||
|
assert_and_click "anaconda_custom_part_fs_$args{filesystem}";
|
||||||
|
}
|
||||||
|
# select "free space" in custom-gui if it exists, so we could run this function again to add another partition
|
||||||
|
if (check_screen("anaconda_custom_free_space", 15)) {
|
||||||
|
assert_and_click "anaconda_custom_free_space";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
sub custom_blivet_format_partition {
|
sub custom_blivet_format_partition {
|
||||||
# This subroutine formats a selected partition. To use it, you must select the
|
# This subroutine formats a selected partition. To use it, you must select the
|
||||||
# partition by other means before you format it using this routine.
|
# partition by other means before you format it using this routine.
|
||||||
# You have to create a needle for any non-existing filesystem that is
|
# You have to create a needle for any non-existing filesystem that is
|
||||||
# passed via the $type, such as anaconda_blivet_part_fs_ext4.
|
# passed via the $type, such as anaconda_blivet_part_fs_ext4.
|
||||||
@ -202,14 +261,14 @@ sub custom_blivet_format_partition {
|
|||||||
sub custom_blivet_resize_partition {
|
sub custom_blivet_resize_partition {
|
||||||
# This subroutine resizes the selected (active) partition to a given value. Note, that
|
# This subroutine resizes the selected (active) partition to a given value. Note, that
|
||||||
# if the selected value is bigger than the available space, it will only be
|
# if the selected value is bigger than the available space, it will only be
|
||||||
# resized to fill up the available space no matter the number.
|
# resized to fill up the available space no matter the number.
|
||||||
# This routine cannot will not be able to select a particular partition!!!
|
# This routine cannot will not be able to select a particular partition!!!
|
||||||
my %args = @_;
|
my %args = @_;
|
||||||
# Start editing the partition and select the Resize option
|
# Start editing the partition and select the Resize option
|
||||||
assert_and_click "anaconda_blivet_part_edit";
|
assert_and_click "anaconda_blivet_part_edit";
|
||||||
assert_and_click "anaconda_blivet_part_resize";
|
assert_and_click "anaconda_blivet_part_resize";
|
||||||
# Select the appropriate units. Note, that there must a be needle existing
|
# Select the appropriate units. Note, that there must a be needle existing
|
||||||
# for each possible unit that you might want to use, such as
|
# for each possible unit that you might want to use, such as
|
||||||
# "anaconda_blivet_size_unit_gib".
|
# "anaconda_blivet_size_unit_gib".
|
||||||
assert_and_click "anaconda_blivet_part_drop_select";
|
assert_and_click "anaconda_blivet_part_drop_select";
|
||||||
assert_and_click "anaconda_blivet_size_unit_$args{units}";
|
assert_and_click "anaconda_blivet_size_unit_$args{units}";
|
||||||
@ -365,7 +424,7 @@ sub crash_anaconda_text {
|
|||||||
# This routine uses the Anaconda crash trigger to break the ongoing Anaconda installation to simulate
|
# This routine uses the Anaconda crash trigger to break the ongoing Anaconda installation to simulate
|
||||||
# an Anaconda crash and runs a series of steps that results in creating a bug in Bugzilla.
|
# an Anaconda crash and runs a series of steps that results in creating a bug in Bugzilla.
|
||||||
# It is used in the `install_text.pm` test and can be switched on by using the CRASH_REPORT
|
# It is used in the `install_text.pm` test and can be switched on by using the CRASH_REPORT
|
||||||
# variable set to 1.
|
# variable set to 1.
|
||||||
#
|
#
|
||||||
# First let us navigate to reach the shell window in Anaconda using the alt-f3 combo,
|
# First let us navigate to reach the shell window in Anaconda using the alt-f3 combo,
|
||||||
# this should take us to another terminal, where we can simulate the crash.
|
# this should take us to another terminal, where we can simulate the crash.
|
||||||
@ -395,7 +454,7 @@ sub report_bug_text {
|
|||||||
# a textual console.
|
# a textual console.
|
||||||
# We will not create a needle for every menu item, and we will fail,
|
# We will not create a needle for every menu item, and we will fail,
|
||||||
# if there will be no positive Bugzilla confirmation shown at the end
|
# if there will be no positive Bugzilla confirmation shown at the end
|
||||||
# of the process and then we will fail.
|
# of the process and then we will fail.
|
||||||
#
|
#
|
||||||
# Let us record the time of this test run. Later, we will use it to
|
# Let us record the time of this test run. Later, we will use it to
|
||||||
# limit the Bugzilla search.
|
# limit the Bugzilla search.
|
||||||
@ -419,12 +478,12 @@ sub report_bug_text {
|
|||||||
type_password $password;
|
type_password $password;
|
||||||
type_string "\n";
|
type_string "\n";
|
||||||
sleep 10;
|
sleep 10;
|
||||||
# Save the report without changing it.
|
# Save the report without changing it.
|
||||||
# It would need some more tweaking to actually type into the report, but since
|
# It would need some more tweaking to actually type into the report, but since
|
||||||
# it is reported even if unchanged, we leave it as such.
|
# it is reported even if unchanged, we leave it as such.
|
||||||
type_string ":wq\n";
|
type_string ":wq\n";
|
||||||
# Wait until the Crash menu appears again.
|
# Wait until the Crash menu appears again.
|
||||||
# The same screen shows the result of the Bugzilla operation,
|
# The same screen shows the result of the Bugzilla operation,
|
||||||
# so if the needle matches, the bug has been created in Bugzilla.
|
# so if the needle matches, the bug has been created in Bugzilla.
|
||||||
# Bugzilla connection is slow so we need to wait out some time,
|
# Bugzilla connection is slow so we need to wait out some time,
|
||||||
# therefore let's use a cycle that will check each 10 seconds and
|
# therefore let's use a cycle that will check each 10 seconds and
|
||||||
@ -435,7 +494,7 @@ sub report_bug_text {
|
|||||||
++$counter;
|
++$counter;
|
||||||
}
|
}
|
||||||
# Sometimes, Bugzilla throws out a communication error although the bug has been
|
# Sometimes, Bugzilla throws out a communication error although the bug has been
|
||||||
# created successfully. If this happens, we will softfail and leave the creation
|
# created successfully. If this happens, we will softfail and leave the creation
|
||||||
# check to a later step.
|
# check to a later step.
|
||||||
if ($counter > 12) {
|
if ($counter > 12) {
|
||||||
record_soft_failure "Warning: Bugzilla has reported an error which could mean that the bug has not been created correctly, but it probably is not a real problem, if the test has not failed completely. ";
|
record_soft_failure "Warning: Bugzilla has reported an error which could mean that the bug has not been created correctly, but it probably is not a real problem, if the test has not failed completely. ";
|
||||||
@ -443,7 +502,7 @@ sub report_bug_text {
|
|||||||
|
|
||||||
# Now, let us check with Bugzilla directly, if the bug has been created.
|
# Now, let us check with Bugzilla directly, if the bug has been created.
|
||||||
# First, we shall get a Bugzilla format timestamp to use it in the query.
|
# First, we shall get a Bugzilla format timestamp to use it in the query.
|
||||||
# The timestamp will limit the list of bugs to those that have been created since
|
# The timestamp will limit the list of bugs to those that have been created since
|
||||||
# the then -> resulting with high probability in the one that this test run
|
# the then -> resulting with high probability in the one that this test run
|
||||||
# has just created.
|
# has just created.
|
||||||
$timestamp = convert_to_bz_timestamp($timestamp);
|
$timestamp = convert_to_bz_timestamp($timestamp);
|
||||||
@ -455,7 +514,7 @@ sub report_bug_text {
|
|||||||
else {
|
else {
|
||||||
print("BUGZILLA: The last bug was found: $lastbug\n");
|
print("BUGZILLA: The last bug was found: $lastbug\n");
|
||||||
}
|
}
|
||||||
# We have found that the bug indeed is in the bugzilla (otherwise
|
# We have found that the bug indeed is in the bugzilla (otherwise
|
||||||
# we would have died already) so now we close it to clean up after this test run.
|
# we would have died already) so now we close it to clean up after this test run.
|
||||||
my $result = close_notabug($lastbug, $apikey);
|
my $result = close_notabug($lastbug, $apikey);
|
||||||
unless ($result) {
|
unless ($result) {
|
||||||
@ -467,5 +526,5 @@ sub report_bug_text {
|
|||||||
|
|
||||||
# Quit anaconda
|
# Quit anaconda
|
||||||
type_string "4\n";
|
type_string "4\n";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -376,14 +376,14 @@
|
|||||||
"USER_LOGIN": "qwerty"
|
"USER_LOGIN": "qwerty"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"install_blivet_lvm_ext4": {
|
"install_custom_gui_lvm_ext4": {
|
||||||
"profiles": {
|
"profiles": {
|
||||||
"rocky-dvd-iso-aarch64-*-aarch64": 40,
|
"rocky-dvd-iso-aarch64-*-aarch64": 40,
|
||||||
"rocky-dvd-iso-x86_64-*-64bit": 40,
|
"rocky-dvd-iso-x86_64-*-64bit": 40,
|
||||||
"rocky-dvd-iso-x86_64-*-uefi": 41
|
"rocky-dvd-iso-x86_64-*-uefi": 41
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
"PARTITIONING": "custom_blivet_lvm_ext4",
|
"PARTITIONING": "custom_gui_lvm_ext4",
|
||||||
"POSTINSTALL": "disk_custom_lvm_ext4_postinstall",
|
"POSTINSTALL": "disk_custom_lvm_ext4_postinstall",
|
||||||
"ROOT_PASSWORD": "weakpassword"
|
"ROOT_PASSWORD": "weakpassword"
|
||||||
}
|
}
|
||||||
|
43
tests/disk_custom_gui_lvm_ext4.pm
Normal file
43
tests/disk_custom_gui_lvm_ext4.pm
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
use base "anacondatest";
|
||||||
|
use strict;
|
||||||
|
use testapi;
|
||||||
|
use anaconda;
|
||||||
|
|
||||||
|
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";
|
||||||
|
|
||||||
|
if (get_var("UEFI")) {
|
||||||
|
# if we're running on UEFI, we need esp
|
||||||
|
custom_add_partition(size => 512, mountpoint => '/boot/efi', filesystem => 'efi_filesystem');
|
||||||
|
}
|
||||||
|
if (get_var("OFW")) {
|
||||||
|
custom_add_partition(size => 4, filesystem => 'ppc_prep_boot');
|
||||||
|
}
|
||||||
|
|
||||||
|
custom_add_partition(size => 512, mountpoint => '/boot', filesystem => 'ext4');
|
||||||
|
custom_add_partition(size => 512, mountpoint => 'swap', filesystem => 'swap');
|
||||||
|
|
||||||
|
# LVM vg already exists, so just add a volume
|
||||||
|
# add lvm LV with ext4 and mount it as /
|
||||||
|
custom_add_partition(devicetype => 'lvmlv', filesystem => 'ext4', mountpoint => '/');
|
||||||
|
|
||||||
|
# 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:
|
Loading…
Reference in New Issue
Block a user