mirror of
https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git
synced 2024-11-14 10:44:22 +00:00
06fbeca281
The way this currently works, the test unconditionally waits 60 seconds for the "Timbuktu screen" (the warning dialog shown on pre-release images) to appear when anaconda is starting up, even if it's testing an image where it doesn't show up. Now we test Atomic nightlies and live respins and stuff this happens quite a lot, so let's avoid it. This way if the hub appears during those 60 seconds we'll spot it right away and continue, otherwise we behave the same as before. Signed-off-by: Adam Williamson <awilliam@redhat.com>
94 lines
3.6 KiB
Perl
94 lines
3.6 KiB
Perl
use base "anacondatest";
|
|
use strict;
|
|
use testapi;
|
|
use utils;
|
|
use anaconda;
|
|
|
|
sub run {
|
|
my $self = shift;
|
|
# construct the kernel params. the trick here is to wind up with
|
|
# spaced params if GRUB or GRUBADD is set, and just spaces if not,
|
|
# then check if we got all spaces. We wind up with a harmless
|
|
# extra space if GRUBADD is set but GRUB is not.
|
|
my $params = "";
|
|
$params .= get_var("GRUB", "") . " ";
|
|
$params .= get_var("GRUBADD", "") . " ";
|
|
# Construct inst.repo arg for REPOSITORY_VARIATION
|
|
my $repourl = get_var("REPOSITORY_VARIATION");
|
|
if ($repourl) {
|
|
$params .= "inst.repo=" . get_full_repo($repourl) . " ";
|
|
}
|
|
$params .= "inst.text " if get_var("ANACONDA_TEXT");
|
|
# inst.debug enables memory use tracking
|
|
$params .= "debug" if get_var("MEMCHECK");
|
|
# ternary: set $params to "" if it contains only spaces
|
|
$params = $params =~ /^\s+$/ ? "" : $params;
|
|
|
|
# set mutex wait if necessary
|
|
my $mutex = get_var("INSTALL_UNLOCK");
|
|
|
|
# call do_bootloader with postinstall=0, the params, and the mutex
|
|
do_bootloader(postinstall=>0, params=>$params, mutex=>$mutex);
|
|
|
|
# proceed to installer
|
|
if (get_var("KICKSTART")) {
|
|
# wait for the bootloader *here* - in a test that inherits from
|
|
# anacondatest - so that if something goes wrong during install,
|
|
# we get anaconda logs
|
|
assert_screen "bootloader", 1800;
|
|
}
|
|
else {
|
|
if (get_var("ANACONDA_TEXT")) {
|
|
# select that we don't want to start VNC; we want to run in text mode
|
|
assert_screen "anaconda_use_text_mode", 300;
|
|
type_string "2\n";
|
|
# wait for text version of Anaconda main hub
|
|
assert_screen "anaconda_main_hub_text", 300;
|
|
} else {
|
|
# on lives, we have to explicitly launch anaconda
|
|
if (get_var('LIVE')) {
|
|
assert_and_click "live_start_anaconda_icon", '', 300;
|
|
}
|
|
my $language = get_var('LANGUAGE') || 'english';
|
|
# wait for anaconda to appear; we click to work around
|
|
# RHBZ #1566066 if it happens
|
|
assert_and_click "anaconda_select_install_lang", '', 300;
|
|
# Select install language
|
|
wait_screen_change { assert_and_click "anaconda_select_install_lang_input"; };
|
|
type_safely $language;
|
|
# Needle filtering in main.pm ensures we will only look for the
|
|
# appropriate language, here
|
|
assert_and_click "anaconda_select_install_lang_filtered";
|
|
assert_screen "anaconda_select_install_lang_selected", 3;
|
|
assert_and_click "anaconda_select_install_lang_continue";
|
|
|
|
# wait 60 secs for hub or Rawhide warning dialog to appear.
|
|
# If the hub appears, return - we're done now. If Rawhide
|
|
# warning dialog appears, accept it.
|
|
if (check_screen ["anaconda_rawhide_accept_fate", "anaconda_main_hub"], 60) {
|
|
if (match_has_tag("anaconda_rawhide_accept_fate")) {
|
|
assert_and_click "anaconda_rawhide_accept_fate";
|
|
}
|
|
else {
|
|
# this is when the hub appeared already, we're done
|
|
return;
|
|
}
|
|
}
|
|
# This is where we get to if we accepted fate above, *or*
|
|
# didn't match anything: if the Rawhide warning didn't
|
|
# show by now it never will, so we'll just wait for the
|
|
# hub to show up.
|
|
assert_screen "anaconda_main_hub", 900; #
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
sub test_flags {
|
|
return { fatal => 1 };
|
|
}
|
|
|
|
1;
|
|
|
|
# vim: set sw=4 et:
|