mirror of
https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git
synced 2024-11-21 21:43:08 +00:00
gnome-initial-setup: handle keyboard being skipped
We now have a fix for the bug on the new webUI flow where the language and keyboard screens weren't skipped on the first boot after install, as intended. language is never *really* skipped - it just turns into welcome - but keyboard is now being skipped, which messes up the logic here. For a short time we need to handle both paths, to get the new anaconda builds through and new composes built. In a couple of days we can simplify this to just always assume keyboard will be skipped on the first boot on Workstation live installs on F39+. Also drop handling of auth_required in g-i-s - I'm pretty sure that bug got fixed years ago - and wait_still_screen for three seconds on each page, to let animated transitions settle. Signed-off-by: Adam Williamson <awilliam@redhat.com>
This commit is contained in:
parent
ccfef0d168
commit
82ae0a3b81
61
lib/utils.pm
61
lib/utils.pm
@ -725,6 +725,16 @@ sub gnome_initial_setup {
|
|||||||
@_
|
@_
|
||||||
);
|
);
|
||||||
my $relnum = get_release_number;
|
my $relnum = get_release_number;
|
||||||
|
|
||||||
|
# note: when 'language' is "skipped", it's turned into a 'welcome'
|
||||||
|
# page, which has a "Start Setup" button, not a "Next" button
|
||||||
|
unless (check_screen ["next_button", "start_setup"], $args{timeout}) {
|
||||||
|
record_soft_failure "g-i-s taking longer than expected to start up!";
|
||||||
|
assert_screen ["next_button", "start_setup"], $args{timeout};
|
||||||
|
}
|
||||||
|
# GDM 3.24.1 dumps a cursor in the middle of the screen here...
|
||||||
|
mouse_hide if ($args{prelogin});
|
||||||
|
|
||||||
# the pages we *may* need to click 'next' on. *NOTE*: 'language'
|
# the pages we *may* need to click 'next' on. *NOTE*: 'language'
|
||||||
# is the 'welcome' page, and is in fact never truly skipped; if
|
# is the 'welcome' page, and is in fact never truly skipped; if
|
||||||
# it's configured to be skipped, it just shows without the language
|
# it's configured to be skipped, it just shows without the language
|
||||||
@ -746,20 +756,23 @@ sub gnome_initial_setup {
|
|||||||
# 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 ,
|
||||||
# except 'language' was never *really* skipped (see above)
|
# except 'language' was never *really* skipped (see above)
|
||||||
# From gnome-initial-setup 45~beta-3 on, these screens aren't
|
|
||||||
# skipped in vendor.conf. They should be skipped for live
|
|
||||||
# installs because they were shown preinstall on the new webUI
|
|
||||||
# workflow, but this is broken till
|
|
||||||
# https://github.com/rhinstaller/anaconda/pull/5056 is merged.
|
|
||||||
# network installs and disk image deployments will show these
|
|
||||||
# screens (which is good for disk image deployments, but
|
|
||||||
# redundant for network installs)
|
|
||||||
# FIXME modify this to drop the pages on F39+ live installs
|
|
||||||
# once the anaconda PR is merged or addressed some other way
|
|
||||||
if ($relnum < 39) {
|
if ($relnum < 39) {
|
||||||
@nexts = grep { $_ ne 'keyboard' } @nexts;
|
@nexts = grep { $_ ne 'keyboard' } @nexts;
|
||||||
@nexts = grep { $_ ne 'timezone' } @nexts;
|
@nexts = grep { $_ ne 'timezone' } @nexts;
|
||||||
}
|
}
|
||||||
|
# From gnome-initial-setup 45~beta-3 on, no screens are
|
||||||
|
# skipped in vendor.conf. 'language' and 'keyboard' should be
|
||||||
|
# skipped (meaning 'language' is turned into 'welcome' and
|
||||||
|
# 'keyboard' is really skipped) on live installs because we saw
|
||||||
|
# them already, but this only works from anaconda 39.32.2 /
|
||||||
|
# 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
|
||||||
|
# and we can assume 'keyboard' will also be skipped
|
||||||
|
@nexts = grep { $_ ne 'keyboard' } @nexts;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
# 'timezone' and 'software' are suppressed for the 'existing user'
|
# 'timezone' and 'software' are suppressed for the 'existing user'
|
||||||
@ -768,29 +781,9 @@ sub gnome_initial_setup {
|
|||||||
@nexts = grep { $_ ne 'timezone' } @nexts;
|
@nexts = grep { $_ ne 'timezone' } @nexts;
|
||||||
}
|
}
|
||||||
|
|
||||||
# note: in g-i-s 3.37.91 and later, the first screen in systemwide
|
|
||||||
# mode has a "Start Setup" button, not a "Next" button
|
|
||||||
unless (check_screen ["next_button", "start_setup", "auth_required"], $args{timeout}) {
|
|
||||||
record_soft_failure "g-i-s taking longer than expected to start up!";
|
|
||||||
assert_screen ["next_button", "start_setup", "auth_required"], $args{timeout};
|
|
||||||
}
|
|
||||||
# workaround auth dialog appearing to change timezone even
|
|
||||||
# though timezone screen is disabled
|
|
||||||
if (match_has_tag("auth_required")) {
|
|
||||||
record_soft_failure "Unexpected authentication required: https://gitlab.gnome.org/GNOME/gnome-initial-setup/-/issues/106";
|
|
||||||
send_key "esc";
|
|
||||||
assert_screen ["next_button", "start_setup"];
|
|
||||||
}
|
|
||||||
# wait a bit in case of animation
|
|
||||||
wait_still_screen 3;
|
|
||||||
# one more check for frickin auth_required
|
|
||||||
if (check_screen "auth_required") {
|
|
||||||
record_soft_failure "Unexpected authentication required: https://gitlab.gnome.org/GNOME/gnome-initial-setup/-/issues/106";
|
|
||||||
send_key "esc";
|
|
||||||
}
|
|
||||||
# GDM 3.24.1 dumps a cursor in the middle of the screen here...
|
|
||||||
mouse_hide if ($args{prelogin});
|
|
||||||
foreach my $next (@nexts) {
|
foreach my $next (@nexts) {
|
||||||
|
# give animations a bit to settle down
|
||||||
|
wait_still_screen 3;
|
||||||
# click 'Next' $nexts times, moving the mouse to avoid
|
# click 'Next' $nexts times, moving the mouse to avoid
|
||||||
# highlight problems, sleeping to give it time to get
|
# highlight problems, sleeping to give it time to get
|
||||||
# to the next screen between clicks
|
# to the next screen between clicks
|
||||||
@ -798,8 +791,8 @@ sub gnome_initial_setup {
|
|||||||
if ($next eq 'language') {
|
if ($next eq 'language') {
|
||||||
# only accept start_setup one time, to avoid matching
|
# only accept start_setup one time, to avoid matching
|
||||||
# on it during transition to next screen. also accept
|
# on it during transition to next screen. also accept
|
||||||
# next_button as in per-user mode, first screen has that
|
# next_button as in live and existing user modes, first
|
||||||
# not start_setup
|
# screen has that not start_setup
|
||||||
wait_screen_change { assert_and_click ["next_button", "start_setup"]; };
|
wait_screen_change { assert_and_click ["next_button", "start_setup"]; };
|
||||||
}
|
}
|
||||||
elsif ($next eq 'timezone') {
|
elsif ($next eq 'timezone') {
|
||||||
|
Loading…
Reference in New Issue
Block a user