7b7b63abc1
Since April there's been some kind of issue in the F26 base image which means gnome-initial-setup doesn't run on the first user login (as it should). The F25 base image is fine. I've not yet had the time to look into this. I put a workaround in place to prevent this problem causing false fails of update tests that boot from the F26 base image, but didn't apply the same workaround to upgrade tests, which is why upgrade tests from F26 Workstation always fail - they expect g-i-s to run on first login (which happens after the upgrade, in upgrade tests) and it doesn't. So let's just extend the workaround to apply to upgrade tests too, for now, until we can figure out why this happens.
103 lines
3.8 KiB
Perl
103 lines
3.8 KiB
Perl
use base "installedtest";
|
|
use strict;
|
|
use testapi;
|
|
use utils;
|
|
|
|
sub run {
|
|
my $self = shift;
|
|
# If KICKSTART is set, then the wait_time needs to consider the
|
|
# install time. if UPGRADE, we have to wait for the entire upgrade
|
|
# unless ENCRYPT_PASSWORD is set (in which case the postinstall
|
|
# test does the waiting)
|
|
my $wait_time = 300;
|
|
$wait_time = 1800 if (get_var("KICKSTART"));
|
|
$wait_time = 6000 if (get_var("UPGRADE") && !get_var("ENCRYPT_PASSWORD"));
|
|
|
|
# Handle pre-login initial setup if we're doing INSTALL_NO_USER
|
|
if (get_var("INSTALL_NO_USER") && !get_var("_setup_done")) {
|
|
if (get_var("DESKTOP") eq 'gnome') {
|
|
gnome_initial_setup(prelogin=>1, timeout=>$wait_time);
|
|
}
|
|
else {
|
|
anaconda_create_user(timeout=>$wait_time);
|
|
assert_and_click "initialsetup_finish_configuration";
|
|
set_var("_setup_done", 1);
|
|
}
|
|
$wait_time = 300;
|
|
}
|
|
# Wait for the login screen
|
|
boot_to_login_screen(timeout => $wait_time);
|
|
# GDM 3.24.1 dumps a cursor in the middle of the screen here...
|
|
mouse_hide;
|
|
# do user login unless USER_LOGIN is set to string 'false'
|
|
unless (get_var("USER_LOGIN") eq "false") {
|
|
if (get_var("DESKTOP") eq 'gnome') {
|
|
# we have to hit enter to get the password dialog
|
|
send_key "ret";
|
|
}
|
|
assert_screen "graphical_login_input";
|
|
my $password = get_var("USER_PASSWORD", "weakpassword");
|
|
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";
|
|
|
|
# Handle initial-setup, for GNOME, unless START_AFTER_TEST
|
|
# is set in which case it will have been done already. Always
|
|
# do it if ADVISORY is set, as for the update testing flow,
|
|
# START_AFTER_TEST is set but a no-op and this hasn't happened
|
|
if (get_var("DESKTOP") eq 'gnome' && (get_var("ADVISORY") || !get_var("START_AFTER_TEST"))) {
|
|
# as this test gets loaded twice on the ADVISORY flow, and
|
|
# we might be on the INSTALL_NO_USER flow, check whether
|
|
# this happened already. Also, as of 2017-10 there's a bug
|
|
# in the F26 base image which stops g-i-s running at all;
|
|
# for update and upgrade testing purposes we don't want to
|
|
# fail, we just want to go ahead. So if we see the
|
|
# getting_started screen, just handle that instead.
|
|
unless (get_var("_setup_done")) {
|
|
if (get_var("ADVISORY") || get_var("UPGRADE")) {
|
|
assert_screen ["next_button", "getting_started"], 120;
|
|
if (match_has_tag("next_button")) {
|
|
gnome_initial_setup();
|
|
}
|
|
else {
|
|
send_key "alt-f4";
|
|
set_var("_setup_done", 1);
|
|
}
|
|
}
|
|
else {
|
|
gnome_initial_setup();
|
|
}
|
|
}
|
|
}
|
|
if (get_var("DESKTOP") eq 'gnome' && get_var("INSTALL_NO_USER")) {
|
|
# wait for the stupid 'help' screen to show and kill it
|
|
assert_screen "getting_started";
|
|
send_key "alt-f4";
|
|
wait_still_screen 5;
|
|
}
|
|
|
|
# Move the mouse somewhere it won't highlight the match areas
|
|
mouse_set(300, 200);
|
|
# KDE can take ages to start up
|
|
check_desktop_clean(tries=>40);
|
|
}
|
|
}
|
|
|
|
sub test_flags {
|
|
return { fatal => 1, milestone => 1 };
|
|
}
|
|
|
|
1;
|
|
|
|
# vim: set sw=4 et:
|