1
0
mirror of https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git synced 2024-11-22 05:53:09 +00:00

Compare commits

..

1 Commits

Author SHA1 Message Date
Lukas Ruzicka
402baba336 Create tests for Accessibility. 2024-07-30 11:54:21 +02:00
666 changed files with 814 additions and 5966 deletions

View File

@ -30,14 +30,8 @@ sub select_disks {
# Anaconda hub # Anaconda hub
assert_screen "anaconda_main_hub", 300; assert_screen "anaconda_main_hub", 300;
# Damn animation delay can cause bad clicks here too - wait for it # Damn animation delay can cause bad clicks here too - wait for it
wait_still_screen 3;
assert_and_click "anaconda_main_hub_install_destination";
# it seems that sometimes the first click doesn't work with wayland
# on anaconda. we can't reproduce this manually, so work around it
# by just clicking again, this is safe even if the first click
# *did* work
sleep 1; sleep 1;
click_lastmatch; assert_and_click "anaconda_main_hub_install_destination";
# this is awkward, but on the install_repository_hd_variation test, # this is awkward, but on the install_repository_hd_variation test,
# we have two disks but in F39 and F40 anaconda knows we're using # we have two disks but in F39 and F40 anaconda knows we're using
@ -190,20 +184,9 @@ sub custom_blivet_format_partition {
my %args = @_; my %args = @_;
# Start editing the partition and select the Format option # Start editing the partition and select the Format option
assert_and_click "anaconda_blivet_part_edit"; assert_and_click "anaconda_blivet_part_edit";
# workaround another case where first click doesn't always work
# on Wayland
unless (check_screen "anaconda_blivet_part_format", 10) {
assert_and_click "anaconda_blivet_part_edit";
}
assert_and_click "anaconda_blivet_part_format"; assert_and_click "anaconda_blivet_part_format";
# Select the appropriate filesystem type. # Select the appropriate filesystem type.
assert_and_click "anaconda_blivet_part_drop_select"; assert_and_click "anaconda_blivet_part_drop_select";
unless (check_screen "anaconda_blivet_part_fs_$args{type}", 5) {
record_soft_failure "https://bugzilla.redhat.com/show_bug.cgi?id=2324231";
for (1 .. 15) {
send_key "up";
}
}
assert_and_click "anaconda_blivet_part_fs_$args{type}"; assert_and_click "anaconda_blivet_part_fs_$args{type}";
wait_still_screen 2; wait_still_screen 2;
# Fill in the label if needed. # Fill in the label if needed.

View File

@ -63,7 +63,7 @@ sub init() {
# If this should change in the future, we would need to enhance this routine. # If this should change in the future, we would need to enhance this routine.
sub x11_start_program { sub x11_start_program {
my ($self, $program, $timeout, $options) = @_; my ($self, $program, $timeout, $options) = @_;
send_key(get_var("DESKTOP") eq "i3" ? "alt-d" : "alt-f2"); send_key "alt-f2";
assert_screen "desktop_runner"; assert_screen "desktop_runner";
type_string $program, 20; type_string $program, 20;
sleep 5; # because of KDE dialog - SUSE guys are doing the same! sleep 5; # because of KDE dialog - SUSE guys are doing the same!

46
lib/modularity.pm Normal file
View File

@ -0,0 +1,46 @@
package modularity;
use strict;
use base 'Exporter';
use Exporter;
use lockapi;
use testapi;
use utils;
our @EXPORT = qw(parse_module_list is_listed);
# This subroutine takes the output from the dnf module list command
# and deletes all unnecessary stuff and returns an array of hash
# references where each hash consists of (module, stream, profile).
# The subroutine only recognizes one profile but it is enough
# for the sake of the modularity testing.
sub parse_module_list {
my $output = shift;
my @output_lines = split(/\n/, $output);
my @parsed_list;
foreach my $line (@output_lines) {
my ($module, $stream, $profile) = split(/\s+/, $line);
unless ($module =~ /Fedora|Last|Hint|Name|^$/) {
$profile =~ s/,$//;
my %module = ("module" => $module, "stream" => $stream, "profile" => $profile);
push(@parsed_list, \%module);
}
}
return @parsed_list;
}
# This subroutine iterates over the given list of module hashes and returns True
# if it finds it in the list.
sub is_listed {
my ($module, $stream, $listref) = @_;
my $found = 0;
foreach (@{$listref}) {
if ($_->{module} eq $module and $_->{stream} eq $stream) {
$found = 1;
}
}
return $found;
}

View File

@ -4,9 +4,10 @@ use strict;
use base 'Exporter'; use base 'Exporter';
use Exporter; use Exporter;
use lockapi; use lockapi;
use testapi qw(is_serial_terminal :DEFAULT); use testapi qw(is_serial_terminal :DEFAULT);
our @EXPORT = qw/run_with_error_check type_safely type_very_safely desktop_vt boot_to_login_screen console_login console_switch_layout desktop_switch_layout console_loadkeys_us do_bootloader boot_decrypt check_release menu_launch_type setup_repos repo_setup get_workarounds disable_updates_repos cleanup_workaround_repo console_initial_setup handle_welcome_screen gnome_initial_setup anaconda_create_user check_desktop quit_firefox advisory_get_installed_packages acnp_handle_output advisory_check_nonmatching_packages start_with_launcher quit_with_shortcut disable_firefox_studies select_rescue_mode copy_devcdrom_as_isofile get_release_number check_left_bar check_top_bar check_prerelease check_version spell_version_number _assert_and_click is_branched rec_log repos_mirrorlist register_application get_registered_applications desktop_launch_terminal solidify_wallpaper check_and_install_git download_testdata make_serial_writable set_update_notification_timestamp kde_doublek_workaround dm_perform_login/; our @EXPORT = qw/run_with_error_check type_safely type_very_safely desktop_vt boot_to_login_screen console_login console_switch_layout desktop_switch_layout console_loadkeys_us do_bootloader boot_decrypt check_release menu_launch_type setup_repos repo_setup get_workarounds disable_updates_repos cleanup_workaround_repo console_initial_setup handle_welcome_screen gnome_initial_setup anaconda_create_user check_desktop download_modularity_tests quit_firefox advisory_get_installed_packages advisory_check_nonmatching_packages start_with_launcher quit_with_shortcut disable_firefox_studies select_rescue_mode copy_devcdrom_as_isofile get_release_number check_left_bar check_top_bar check_prerelease check_version spell_version_number _assert_and_click is_branched rec_log repos_mirrorlist register_application get_registered_applications solidify_wallpaper check_and_install_git download_testdata make_serial_writable set_update_notification_timestamp kde_doublek_workaround/;
# We introduce this global variable to hold the list of applications that have # We introduce this global variable to hold the list of applications that have
@ -474,10 +475,8 @@ sub get_workarounds {
my $version = shift || get_var("VERSION"); my $version = shift || get_var("VERSION");
my %workarounds = ( my %workarounds = (
"39" => [], "39" => [],
"40" => [], "40" => ["FEDORA-2024-f86a143437"],
"41" => [], "41" => [],
"42" => ["FEDORA-2024-b3e53a2b43"],
"eln" => [],
); );
my $advortasks = $workarounds{$version}; my $advortasks = $workarounds{$version};
return @$advortasks; return @$advortasks;
@ -500,6 +499,10 @@ sub disable_updates_repos {
# on dnf 4 vs. dnf 5 and really sed is just as easy # on dnf 4 vs. dnf 5 and really sed is just as easy
assert_script_run 'sed -i -e "s,enabled=1,enabled=0,g" /etc/yum.repos.d/fedora-updates-testing.repo'; assert_script_run 'sed -i -e "s,enabled=1,enabled=0,g" /etc/yum.repos.d/fedora-updates-testing.repo';
assert_script_run 'sed -i -e "s,enabled=1,enabled=0,g" /etc/yum.repos.d/fedora-updates.repo' if ($args{both}); assert_script_run 'sed -i -e "s,enabled=1,enabled=0,g" /etc/yum.repos.d/fedora-updates.repo' if ($args{both});
unless (script_run 'test -f /etc/yum.repos.d/fedora-updates-testing-modular.repo') {
assert_script_run 'sed -i -e "s,enabled=1,enabled=0,g" /etc/yum.repos.d/fedora-updates-testing-modular.repo';
assert_script_run 'sed -i -e "s,enabled=1,enabled=0,g" /etc/yum.repos.d/fedora-updates-modular.repo' if ($args{both});
}
} }
sub _repo_setup_compose { sub _repo_setup_compose {
@ -514,11 +517,12 @@ sub _repo_setup_compose {
my $location = get_var("LOCATION"); my $location = get_var("LOCATION");
return unless $location; return unless $location;
disable_updates_repos(both => 1); disable_updates_repos(both => 1);
# we use script_run here as the rawhide repo files # we use script_run here as the rawhide and modular repo files
# won't always exist and we don't want to bother testing or # won't always exist and we don't want to bother testing or
# predicting their existence; assert_script_run doesn't buy you # predicting their existence; assert_script_run doesn't buy you
# much with sed as it'll return 0 even if it replaced nothing # much with sed as it'll return 0 even if it replaced nothing
script_run "sed -i -e 's,^metalink,#metalink,g' -e 's,^mirrorlist,#mirrorlist,g' -e 's,^#baseurl.*basearch,baseurl=${location}/Everything/\$basearch,g' -e 's,^#baseurl.*source,baseurl=${location}/Everything/source,g' /etc/yum.repos.d/{fedora,fedora-rawhide}.repo", 0; script_run "sed -i -e 's,^metalink,#metalink,g' -e 's,^mirrorlist,#mirrorlist,g' -e 's,^#baseurl.*basearch,baseurl=${location}/Everything/\$basearch,g' -e 's,^#baseurl.*source,baseurl=${location}/Everything/source,g' /etc/yum.repos.d/{fedora,fedora-rawhide}.repo", 0;
script_run "sed -i -e 's,^metalink,#metalink,g' -e 's,^mirrorlist,#mirrorlist,g' -e 's,^#baseurl.*basearch,baseurl=${location}/Modular/\$basearch,g' -e 's,^#baseurl.*source,baseurl=${location}/Modular/source,g' /etc/yum.repos.d/{fedora-modular,fedora-rawhide-modular}.repo", 0;
# this can be used for debugging if something is going wrong # this can be used for debugging if something is going wrong
# unless (script_run 'pushd /etc/yum.repos.d && tar czvf yumreposd.tar.gz * && popd') { # unless (script_run 'pushd /etc/yum.repos.d && tar czvf yumreposd.tar.gz * && popd') {
@ -589,12 +593,8 @@ sub setup_repos {
if ($args{waonly} || $tag || $copr) { if ($args{waonly} || $tag || $copr) {
return unless (@was); return unless (@was);
} }
# if we got this far, we're definitely downloading *something* so # if we got this far, we're definitely downloading *something*
# install the download tools. split bodhi-client out because it script_run "dnf -y install createrepo_c bodhi-client koji", 300;
# isn't there on ELN currently, which means we can't use workarounds
# specified as update IDs on ELN
script_run "dnf -y install createrepo_c koji", 300;
script_run "dnf -y install bodhi-client", 300;
get_setup_repos_script; get_setup_repos_script;
my $wastring = join(',', @was); my $wastring = join(',', @was);
my $udstring; my $udstring;
@ -701,11 +701,8 @@ sub _repo_setup_updates {
disable_updates_repos(both => 0) if ($version > $currrel); disable_updates_repos(both => 0) if ($version > $currrel);
# use the buildroot repo on Rawhide: see e.g. # use the buildroot repo on Rawhide: see e.g.
# https://pagure.io/fedora-ci/general/issue/376 for why # https://pagure.io/fedora-ci/general/issue/376 for why
if ($version eq get_var("RAWREL") && get_var("TEST") ne "support_server") { if (get_var("VERSION") eq get_var("RAWREL") && get_var("TEST") ne "support_server") {
assert_script_run 'printf "[koji-rawhide]\nname=koji-rawhide\nbaseurl=https://kojipkgs.fedoraproject.org/repos/f' . $version . '-build/latest/' . $arch . '/\ncost=2000\nenabled=1\ngpgcheck=0\n" > /etc/yum.repos.d/koji-rawhide.repo'; assert_script_run 'printf "[koji-rawhide]\nname=koji-rawhide\nbaseurl=https://kojipkgs.fedoraproject.org/repos/rawhide/latest/' . $arch . '/\ncost=2000\nenabled=1\ngpgcheck=0\n" > /etc/yum.repos.d/koji-rawhide.repo';
}
if (lc(get_var("VERSION")) eq "eln" && get_var("TEST") ne "support_server") {
assert_script_run 'printf "[koji-eln]\nname=koji-eln\nbaseurl=https://kojipkgs.fedoraproject.org/repos/eln-build/latest/' . $arch . '/\ncost=2000\nenabled=1\ngpgcheck=0\n" > /etc/yum.repos.d/koji-eln.repo';
} }
if (get_var("CANNED")) { if (get_var("CANNED")) {
# install and use en_US.UTF-8 locale for consistent sort # install and use en_US.UTF-8 locale for consistent sort
@ -732,7 +729,7 @@ sub _repo_setup_updates {
# above (and their deps, which dnf will include automatically), # above (and their deps, which dnf will include automatically),
# just in case they're in the update under test; otherwise we # just in case they're in the update under test; otherwise we
# get a bogus failure for the package not being updated # get a bogus failure for the package not being updated
script_run "dnf -y remove createrepo_c koji", 600 if (get_var("INSTALL") && !get_var("CANNED")); script_run "dnf -y remove bodhi-client createrepo_c koji", 600 if (get_var("INSTALL") && !get_var("CANNED"));
} }
# exit the toolbox on CANNED # exit the toolbox on CANNED
if (get_var("CANNED")) { if (get_var("CANNED")) {
@ -812,23 +809,12 @@ sub console_initial_setup {
sub handle_welcome_screen { sub handle_welcome_screen {
# handle the 'welcome' screen on GNOME and KDE since F38. shared # handle the 'welcome' screen on GNOME and KDE since F38. shared
# in a few places # in a few places
my %args = @_; if (check_screen "getting_started", 45) {
my $timeout = $args{timeout} || 45;
if (check_screen "getting_started", $timeout) {
if (get_var("DESKTOP") eq "kde") { if (get_var("DESKTOP") eq "kde") {
# just closing it seems to result in it running again on # just closing it seems to result in it running again on
# next boot, so let's click Skip # next boot, so let's click Skip
click_lastmatch; click_lastmatch;
} }
elsif (get_var("DESKTOP") eq "i3") {
# Press enter to start config, then move one line down
# and press enter once more to confirm.
send_key("ret");
sleep(1);
send_key("down");
sleep(1);
send_key("ret");
}
else { else {
send_key "alt-f4"; send_key "alt-f4";
# for GNOME 40, alt-f4 doesn't work # for GNOME 40, alt-f4 doesn't work
@ -879,28 +865,29 @@ sub gnome_initial_setup {
# now, we're going to figure out how many of them this test will # now, we're going to figure out how many of them this test will
# *actually* see... # *actually* see...
if ($args{live}) { if ($args{live}) {
# this is the flow we expect to see when booting live images # this is the flow we see when booting an F40+ Workstation live
# with anaconda webui, though as of 2024-08 it is unused as # we only get language and keyboard
# the patch has been dropped due to maintenance difficulty
@nexts = ('language', 'keyboard'); @nexts = ('language', 'keyboard');
} }
if ($args{prelogin}) { if ($args{prelogin}) {
# On releases that use anaconda gtkui on live images, we # 'language', 'keyboard' and 'timezone' were skipped between F28
# configure g-i-s to skip 'language', 'keyboard' and 'timezone' # and F39 in the 'new user' mode by
# using a custom vendor.conf:
# https://fedoraproject.org//wiki/Changes/ReduceInitialSetupRedundancy # https://fedoraproject.org//wiki/Changes/ReduceInitialSetupRedundancy
# https://bugzilla.redhat.com/show_bug.cgi?id=1474787 , # https://bugzilla.redhat.com/show_bug.cgi?id=1474787 ,
# but 'language' is never *really* skipped (see above) # except 'language' was never *really* skipped (see above)
if ($relnum < 42) { if ($relnum < 41) {
@nexts = grep { $_ ne 'keyboard' } @nexts; @nexts = grep { $_ ne 'keyboard' } @nexts;
@nexts = grep { $_ ne 'timezone' } @nexts; @nexts = grep { $_ ne 'timezone' } @nexts;
} }
# if g-i-s ran before anaconda (as expected on the live + webui # From gnome-initial-setup 45~beta-3 on, no screens are
# flow), anaconda forwards a g-i-s state file to the installed # skipped in vendor.conf. 'language' and 'keyboard' should be
# system, causing it to skip 'language' and 'keyboard' (meaning # skipped (meaning 'language' is turned into 'welcome' and
# 'language' is turned into 'welcome' and 'keyboard' is really # 'keyboard' is really skipped) on live installs because we saw
# skipped) # them already, but this only works from anaconda 39.32.2 /
if (match_has_tag "start_setup") { # 40.3 onwards. network installs and disk image deployments
# will show these screens (which is good for disk image
# deployments, but redundant for network installs)
elsif (match_has_tag "start_setup") {
# if we saw start_setup, that means 'language' was skipped # if we saw start_setup, that means 'language' was skipped
# and we can assume 'keyboard' will also be skipped # and we can assume 'keyboard' will also be skipped
@nexts = grep { $_ ne 'keyboard' } @nexts; @nexts = grep { $_ ne 'keyboard' } @nexts;
@ -1118,13 +1105,25 @@ sub check_desktop {
last; last;
} }
} }
if ($activematched) { if ($activematched) {
# make sure we got to inactive after active # make sure we got to inactive after active
die "never reached apps_menu_button_inactive!" unless (match_has_tag "apps_menu_button_inactive"); die "never reached apps_menu_button_inactive!" unless (match_has_tag "apps_menu_button_inactive");
} }
} }
sub download_modularity_tests {
# Download the modularity test script, place in the system and then
# modify the access rights to make it executable.
my ($whitelist) = @_;
# we need python3-yaml for the script to run
assert_script_run 'dnf -y install python3-yaml', 180;
assert_script_run 'curl --retry-delay 10 --max-time 30 --retry 5 -o /root/test.py https://pagure.io/fedora-qa/modularity_testing_scripts/raw/master/f/modular_functions.py', timeout => 180;
if ($whitelist eq 'whitelist') {
assert_script_run 'curl --retry-delay 10 --max-time 30 --retry 5 -o /root/whitelist https://pagure.io/fedora-qa/modularity_testing_scripts/raw/master/f/whitelist', timeout => 180;
}
assert_script_run 'chmod 755 /root/test.py';
}
sub quit_firefox { sub quit_firefox {
# Quit Firefox, handling the 'close multiple tabs' warning screen if # Quit Firefox, handling the 'close multiple tabs' warning screen if
# it shows up. Expects to quit to a recognizable console # it shows up. Expects to quit to a recognizable console
@ -1236,27 +1235,6 @@ sub advisory_get_installed_packages {
upload_logs "/mnt/testedpkgs.txt", failok => 1; upload_logs "/mnt/testedpkgs.txt", failok => 1;
} }
sub acnp_handle_output {
my ($ret, $wrapper, $fatal) = @_;
# handle output of updvercheck.py. Split out so the lorax
# tests can use the same logic
if ($ret == 2) {
record_soft_failure "Some update package(s) not installed, but this is probably OK, see script output";
}
if ($ret == 1 || $ret == 3) {
my $message = "Package(s) from update not installed when it should have been! See script output";
$message = "Script failed unexpectedly!" if ($ret == 1);
if ($fatal) {
set_var("_ACNMP_DONE", "1") unless $wrapper;
die $message;
}
else {
# if we're already in post_fail_hook, we don't want to die again
record_info $message;
}
}
}
sub advisory_check_nonmatching_packages { sub advisory_check_nonmatching_packages {
# For update tests (this only works if we've been through # For update tests (this only works if we've been through
# _repo_setup_updates), figure out if we have a different version # _repo_setup_updates), figure out if we have a different version
@ -1312,7 +1290,23 @@ sub advisory_check_nonmatching_packages {
my $cmd = 'python3 ./updvercheck.py /mnt/updatepkgs.txt /tmp/installedupdatepkgs.txt'; my $cmd = 'python3 ./updvercheck.py /mnt/updatepkgs.txt /tmp/installedupdatepkgs.txt';
$cmd .= " $advisory" if ($advisory); $cmd .= " $advisory" if ($advisory);
my $ret = script_run $cmd; my $ret = script_run $cmd;
acnp_handle_output($ret, $wrapper, $args{fatal}); # 2 is warnings only, 3 is problems, 1 means the script died in
# some other way (probably a bug)
if ($ret == 2) {
record_soft_failure "Some update package(s) not installed, but this is probably OK, see script output";
}
if ($ret == 1 || $ret == 3) {
my $message = "Package(s) from update not installed when it should have been! See script output";
$message = "Script failed unexpectedly!" if ($ret == 1);
if ($args{fatal}) {
set_var("_ACNMP_DONE", "1") unless $wrapper;
die $message;
}
else {
# if we're already in post_fail_hook, we don't want to die again
record_info $message;
}
}
} }
sub select_rescue_mode { sub select_rescue_mode {
@ -1381,15 +1375,13 @@ sub menu_launch_type {
# launcher, typing the specified string and hitting enter. Pass # launcher, typing the specified string and hitting enter. Pass
# the string to be typed to launch whatever it is you want. # the string to be typed to launch whatever it is you want.
my $app = shift; my $app = shift;
my $key = 'super'; # To overcome BZ2097208, let's move the mouse out of the way
$key = 'alt-d' if (get_var("DESKTOP") eq "i3"); # and give the launcher some time to take the correct focus.
if (get_var("DESKTOP") eq "kde") { if (get_var("DESKTOP") eq "kde") {
# To overcome BZ2097208, let's move the mouse out of the way
# and give the launcher some time to take the correct focus.
diag("Moving the mouse away from the launcher."); diag("Moving the mouse away from the launcher.");
mouse_set(1, 1); mouse_set(1, 1);
} }
wait_screen_change { send_key $key; }; wait_screen_change { send_key 'super'; };
# srsly KDE y u so slo # srsly KDE y u so slo
wait_still_screen 3; wait_still_screen 3;
type_very_safely $app; type_very_safely $app;
@ -1609,22 +1601,6 @@ sub register_application {
print("APPLICATION REGISTERED: $application \n"); print("APPLICATION REGISTERED: $application \n");
} }
# launch a terminal from a desktop, using the most efficient/reliable
# approach (not appropriate if we really need to test launching it a
# specific way)
sub desktop_launch_terminal {
my $desktop = get_var("DESKTOP");
if ($desktop eq "i3") {
send_key "alt-ret";
}
elsif ($desktop eq "kde") {
send_key "ctrl-alt-t";
}
else {
menu_launch_type "terminal";
}
}
# The KDE desktop tests are very difficult to maintain, because the transparency # The KDE desktop tests are very difficult to maintain, because the transparency
# of the menu requires a lot of different needles to cover the elements. # of the menu requires a lot of different needles to cover the elements.
# Therefore it is useful to change the background to a solid colour. # Therefore it is useful to change the background to a solid colour.
@ -1668,8 +1644,7 @@ sub solidify_wallpaper {
} }
elsif ($desktop eq "gnome") { elsif ($desktop eq "gnome") {
# Start the terminal to set up backgrounds. # Start the terminal to set up backgrounds.
desktop_launch_terminal; menu_launch_type "gnome-terminal";
assert_screen "apps_run_terminal";
# wait to be sure it's fully open # wait to be sure it's fully open
wait_still_screen(stilltime => 5, similarity_level => 38); wait_still_screen(stilltime => 5, similarity_level => 38);
# When the application opens, run command in it to set the background to black # When the application opens, run command in it to set the background to black
@ -1777,8 +1752,7 @@ sub set_update_notification_timestamp {
sub start_applications { sub start_applications {
my @applications = @_; my @applications = @_;
# Open the terminal # Open the terminal
desktop_launch_terminal; menu_launch_type("terminal");
assert_screen("apps_run_terminal");
wait_still_screen(2); wait_still_screen(2);
# Iterate over the application list # Iterate over the application list
# and start each application from it. # and start each application from it.
@ -1798,46 +1772,11 @@ sub start_applications {
# close operation before we do anything 'real'. this is repeated in # close operation before we do anything 'real'. this is repeated in
# several tests so we share it here # several tests so we share it here
sub kde_doublek_workaround { sub kde_doublek_workaround {
my %args = @_;
$args{key} //= 'k';
wait_screen_change { send_key 'super'; }; wait_screen_change { send_key 'super'; };
wait_still_screen 3; wait_still_screen 3;
send_key $args{key}; send_key "k";
wait_still_screen 5; wait_still_screen 5;
send_key 'esc'; send_key "esc";
wait_still_screen 3;
}
# handle login at a graphical DM once we have reached the initial
# DM screen. Factored out of _graphical_wait_login for reuse by
# tests that reboot and need to login afterwards
sub dm_perform_login {
my ($desktop, $password) = @_;
# GDM 3.24.1 dumps a cursor in the middle of the screen here...
mouse_hide;
if ($desktop eq 'gnome') {
# we have to hit enter to get the password dialog, and it
# doesn't always work for some reason so just try it three
# times
send_key_until_needlematch("graphical_login_input", "ret", 3, 5);
}
assert_screen "graphical_login_input";
# seems like we often double-type on aarch64 if we start right
# away
wait_still_screen(stilltime => 5, similarity_level => 38);
if (get_var("SWITCHED_LAYOUT")) {
# see _do_install_and_reboot; when layout is switched
# user password is doubled to contain both US and native
# chars
desktop_switch_layout 'ascii';
type_very_safely $password;
desktop_switch_layout 'native';
type_very_safely $password;
}
else {
type_very_safely $password;
}
send_key "ret";
} }
1; 1;

View File

@ -352,8 +352,11 @@ sub load_postinstall_tests() {
} }
# load the ADVISORY / KOJITASK post-install test - this records which # load the ADVISORY / KOJITASK post-install test - this records which
# update or task packages were actually installed during the test. # update or task packages were actually installed during the test. Don't
if (get_var("ADVISORY_OR_TASK") && !get_var("NO_ADVISORY_POST")) { # do this for netinst tests; as these just use the default install repo,
# they will not get the packages from the update. But installs from live
# image and ostree installer image should get them.
if (get_var("ADVISORY_OR_TASK") && get_var("TEST") ne "install_default_update_netinst") {
# don't do this for support server unless the update is for the same # don't do this for support server unless the update is for the same
# release as the support server disk image, as we don't install the # release as the support server disk image, as we don't install the
# updates on support server when they differ # updates on support server when they differ

View File

@ -1,16 +0,0 @@
{
"area": [
{
"xpos": 787,
"width": 135,
"type": "match",
"ypos": 34,
"height": 14
}
],
"properties": [],
"tags": [
"LANGUAGE-french",
"prerelease_note"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 172 KiB

View File

@ -1,15 +0,0 @@
{
"area": [
{
"xpos": 812,
"ypos": 15,
"width": 86,
"height": 16,
"type": "match"
}
],
"properties": [],
"tags": [
"version_42_ident"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

View File

@ -1,15 +0,0 @@
{
"area": [
{
"type": "match",
"width": 178,
"xpos": 55,
"ypos": 55,
"height": 27
}
],
"properties": [],
"tags": [
"version_42_ident"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 75 KiB

View File

@ -1,17 +0,0 @@
{
"area": [
{
"height": 17,
"ypos": 512,
"type": "match",
"width": 178,
"xpos": 608
}
],
"properties": [],
"tags": [
"anaconda_install_destination_save_passphrase",
"ENV-DISTRI-fedora",
"LANGUAGE-french"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 221 KiB

View File

@ -1,15 +0,0 @@
{
"area": [
{
"type": "match",
"xpos": 40,
"ypos": 340,
"width": 19,
"height": 17
}
],
"properties": [],
"tags": [
"anaconda_install_destination_select_disk_1"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

View File

@ -1,15 +0,0 @@
{
"area": [
{
"height": 17,
"xpos": 40,
"ypos": 340,
"type": "match",
"width": 19
}
],
"properties": [],
"tags": [
"anaconda_install_destination_select_disk_1"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

View File

@ -1,24 +0,0 @@
{
"area": [
{
"width": 314,
"type": "match",
"height": 20,
"xpos": 705,
"ypos": 670
},
{
"type": "match",
"width": 48,
"ypos": 732,
"xpos": 902,
"height": 14
}
],
"properties": [],
"tags": [
"anaconda_install_done",
"ENV-DISTRI-fedora",
"LANGUAGE-english"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

View File

@ -1,20 +0,0 @@
{
"area": [
{
"height": 15,
"xpos": 260,
"ypos": 317,
"width": 68,
"type": "match",
"click_point": {
"xpos": 6.5,
"ypos": 7.5
}
}
],
"properties": [],
"tags": [
"anaconda_install_root_password_screen",
"ENV-DISTRI-fedora"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

View File

@ -1,31 +0,0 @@
{
"area": [
{
"type": "match",
"width": 73,
"height": 17,
"xpos": 245,
"ypos": 161
},
{
"type": "match",
"width": 62,
"height": 17,
"xpos": 255,
"ypos": 264
},
{
"ypos": 50,
"height": 24,
"xpos": 11,
"type": "match",
"width": 57
}
],
"properties": [],
"tags": [
"anaconda_install_user_creation_screen",
"ENV-DISTRI-fedora",
"LANGUAGE-english"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

View File

@ -1,16 +0,0 @@
{
"area": [
{
"type": "match",
"width": 49,
"xpos": 218,
"height": 31,
"ypos": 194
}
],
"properties": [],
"tags": [
"LANGUAGE-arabic",
"anaconda_select_install_lang_filtered"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

View File

@ -1,16 +0,0 @@
{
"area": [
{
"xpos": 361,
"height": 28,
"ypos": 111,
"type": "match",
"width": 87
}
],
"properties": [],
"tags": [
"anaconda_select_install_lang",
"ENV-DISTRI-fedora"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 150 KiB

View File

@ -1,18 +0,0 @@
{
"area": [
{
"width": 171,
"type": "match",
"ypos": 210,
"height": 18,
"xpos": 606
}
],
"properties": [],
"tags": [
"anaconda_select_install_lang_selected",
"anaconda_select_install_lang_filtered",
"ENV-DISTRI-fedora",
"LANGUAGE-english"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

View File

@ -1,17 +0,0 @@
{
"area": [
{
"type": "match",
"width": 110,
"ypos": 706,
"xpos": 888,
"height": 17
}
],
"properties": [],
"tags": [
"anaconda_main_hub_begin_installation",
"ENV-DISTRI-fedora",
"LANGUAGE-english"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

View File

@ -1,15 +0,0 @@
{
"area": [
{
"height": 18,
"xpos": 663,
"ypos": 267,
"width": 35,
"type": "match"
}
],
"properties": [],
"tags": [
"anaconda_network_address_add"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

View File

@ -1,15 +0,0 @@
{
"area": [
{
"type": "match",
"width": 86,
"ypos": 143,
"height": 17,
"xpos": 513
}
],
"properties": [],
"tags": [
"anaconda_network_ipv4"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 KiB

View File

@ -1,15 +0,0 @@
{
"area": [
{
"type": "match",
"width": 342,
"xpos": 69,
"height": 15,
"ypos": 192
}
],
"properties": [],
"tags": [
"anaconda_network_method"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 KiB

View File

@ -1,15 +0,0 @@
{
"area": [
{
"ypos": 255,
"xpos": 137,
"height": 18,
"width": 52,
"type": "match"
}
],
"properties": [],
"tags": [
"anaconda_network_method_manual"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 KiB

View File

@ -1,15 +0,0 @@
{
"area": [
{
"xpos": 339,
"ypos": 346,
"width": 116,
"height": 16,
"type": "match"
}
],
"properties": [],
"tags": [
"anaconda_blivet_part_boot_selected"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

View File

@ -1,15 +0,0 @@
{
"area": [
{
"type": "match",
"width": 51,
"xpos": 412,
"height": 12,
"ypos": 212
}
],
"properties": [],
"tags": [
"anaconda_blivet_vdb_selected"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 150 KiB

View File

@ -1,15 +0,0 @@
{
"area": [
{
"xpos": 270,
"ypos": 337,
"width": 50,
"height": 17,
"type": "match"
}
],
"properties": [],
"tags": [
"anaconda_webui_select"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

View File

@ -1,24 +0,0 @@
{
"area": [
{
"ypos": 148,
"type": "match",
"height": 58,
"width": 58,
"xpos": 483
},
{
"ypos": 341,
"type": "match",
"height": 17,
"width": 31,
"xpos": 442
}
],
"properties": [],
"tags": [
"anaconda_install_done",
"ENV-DISTRI-fedora",
"LANGUAGE-english"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

View File

@ -1,17 +0,0 @@
{
"area": [
{
"type": "match",
"xpos": 363,
"ypos": 188,
"width": 17,
"height": 24
}
],
"properties": [],
"tags": [
"anaconda_install_destination_select_disk_1",
"ENV-DISTRI-fedora",
"ENV-FLAVOR-server"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

View File

@ -1,17 +0,0 @@
{
"area": [
{
"height": 17,
"xpos": 364,
"width": 154,
"type": "match",
"ypos": 726
}
],
"properties": [],
"tags": [
"ENV-DISTRI-fedora",
"LANGUAGE-english",
"anaconda_webui_begin_installation"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

View File

@ -1,15 +0,0 @@
{
"area": [
{
"height": 24,
"ypos": 249,
"xpos": 266,
"width": 141,
"type": "match"
}
],
"properties": [],
"tags": [
"anaconda_webui_disk_select"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

View File

@ -1,15 +0,0 @@
{
"area": [
{
"xpos": 457,
"ypos": 249,
"width": 130,
"height": 37,
"type": "match"
}
],
"properties": [],
"tags": [
"41_background"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 776 KiB

View File

@ -1,16 +0,0 @@
{
"area": [
{
"xpos": 459,
"ypos": 248,
"width": 127,
"height": 39,
"type": "match"
}
],
"properties": [],
"tags": [
"41_background",
"41_background_dark"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 968 KiB

View File

@ -1,15 +0,0 @@
{
"area": [
{
"height": 17,
"type": "match",
"xpos": 410,
"width": 55,
"ypos": 736
}
],
"properties": [],
"tags": [
"browser_kernelorg_patch"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 224 KiB

View File

@ -1,19 +0,0 @@
{
"area": [
{
"type": "match",
"click_point": {
"xpos": 8,
"ypos": 8
},
"width": 44,
"height": 19,
"xpos": 534,
"ypos": 316
}
],
"properties": [],
"tags": [
"cockpit_updates_auto_all"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

View File

@ -1,15 +0,0 @@
{
"area": [
{
"height": 16,
"type": "match",
"xpos": 263,
"width": 81,
"ypos": 519
}
],
"properties": [],
"tags": [
"cockpit_logs_detail"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 192 KiB

View File

@ -1,15 +0,0 @@
{
"area": [
{
"xpos": 1,
"width": 20,
"ypos": 753,
"type": "match",
"height": 14
}
],
"properties": [],
"tags": [
"console_in_toolbox"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

View File

@ -1,15 +0,0 @@
{
"area": [
{
"xpos": 1,
"height": 14,
"ypos": 385,
"type": "match",
"width": 20
}
],
"properties": [],
"tags": [
"console_in_toolbox"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

View File

@ -1,25 +0,0 @@
{
"area": [
{
"xpos": 71,
"width": 72,
"ypos": 625,
"type": "match",
"height": 14
},
{
"xpos": 48,
"ypos": 753,
"width": 30,
"height": 15,
"type": "match"
}
],
"properties": [],
"tags": [
"root_logged_in",
"root_console",
"root_console_dracut",
"ENV-DISTRI-fedora"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

View File

@ -1,16 +0,0 @@
{
"area": [
{
"xpos": 884,
"width": 16,
"height": 19,
"type": "match",
"ypos": 86
}
],
"properties": [],
"tags": [
"browser_download_complete",
"firefox_download_complete"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 293 KiB

View File

@ -1,30 +0,0 @@
{
"area": [
{
"width": 17,
"ypos": 56,
"height": 18,
"type": "match",
"xpos": 88
},
{
"width": 17,
"type": "match",
"xpos": 991,
"height": 18,
"ypos": 56
},
{
"ypos": 91,
"xpos": 369,
"type": "match",
"height": 17,
"width": 19
}
],
"properties": [],
"tags": [
"firefox",
"browser"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 942 KiB

View File

@ -1,16 +0,0 @@
{
"area": [
{
"width": 78,
"ypos": 207,
"type": "match",
"xpos": 631,
"height": 14
}
],
"properties": [],
"tags": [
"apps_run_firefox_stop",
"firefox_close_tabs"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

View File

@ -1,15 +0,0 @@
{
"area": [
{
"width": 129,
"xpos": 446,
"ypos": 119,
"type": "match",
"height": 19
}
],
"properties": [],
"tags": [
"apps_run_gvim"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 444 KiB

View File

@ -1,22 +0,0 @@
{
"area": [
{
"width": 25,
"xpos": 280,
"type": "match",
"ypos": 168,
"height": 21
},
{
"ypos": 125,
"xpos": 192,
"width": 25,
"type": "match",
"height": 20
}
],
"properties": [],
"tags": [
"apps_run_terminal"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 654 KiB

View File

@ -1,15 +0,0 @@
{
"area": [
{
"width": 141,
"xpos": 442,
"ypos": 545,
"type": "match",
"height": 31
}
],
"properties": [],
"tags": [
"apps_run_tour"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

View File

@ -1,15 +0,0 @@
{
"area": [
{
"height": 64,
"type": "match",
"width": 137,
"xpos": 229,
"ypos": 159
}
],
"properties": [],
"tags": [
"archiver_archive_created"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

View File

@ -1,20 +0,0 @@
{
"area": [
{
"xpos": 229,
"height": 64,
"ypos": 159,
"width": 137,
"type": "match"
}
],
"properties": [
{
"value": "icon seems wrong, will report",
"name": "workaround"
}
],
"tags": [
"archiver_archive_created"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

View File

@ -1,20 +0,0 @@
{
"area": [
{
"type": "match",
"height": 64,
"xpos": 229,
"ypos": 159,
"width": 137
}
],
"properties": [
{
"name": "workaround",
"value": "icon seems wrong, will report"
}
],
"tags": [
"archiver_archive_created"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

View File

@ -1,15 +0,0 @@
{
"area": [
{
"ypos": 193,
"type": "match",
"xpos": 670,
"width": 71,
"height": 19
}
],
"properties": [],
"tags": [
"archiver_button_create"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

View File

@ -1,15 +0,0 @@
{
"area": [
{
"ypos": 155,
"xpos": 257,
"width": 86,
"type": "match",
"height": 71
}
],
"properties": [],
"tags": [
"archiver_file_one"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

View File

@ -1,15 +0,0 @@
{
"area": [
{
"type": "match",
"xpos": 671,
"width": 57,
"ypos": 345,
"height": 22
}
],
"properties": [],
"tags": [
"archiver_format_selector"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 141 KiB

View File

@ -1,15 +0,0 @@
{
"area": [
{
"height": 43,
"xpos": 528,
"width": 94,
"type": "match",
"ypos": 498
}
],
"properties": [],
"tags": [
"archiver_select_tarxz"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

View File

@ -1,15 +0,0 @@
{
"area": [
{
"width": 168,
"type": "match",
"height": 44,
"xpos": 6,
"ypos": 121
}
],
"properties": [],
"tags": [
"calc_help_factorial"
]
}

Some files were not shown because too many files have changed in this diff Show More