1
0
mirror of https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git synced 2024-11-30 09:33:07 +00:00

Compare commits

..

No commits in common. "d012d3127044ff4109cd49ac264a5cf919ab894d" and "729796730fc577a3cb7856697e6aa0b85ba3ff66" have entirely different histories.

38 changed files with 302 additions and 40 deletions

View File

@ -159,14 +159,10 @@ sub post_fail_hook {
upload_logs "/var/tmp/imgbuild/program.log", failok => 1; upload_logs "/var/tmp/imgbuild/program.log", failok => 1;
} }
if (get_var("ADVISORY_OR_TASK") && get_var("TEST") ne "install_default_update_netinst") {
unless (get_var("TEST") eq "support_server" && get_var("VERSION") ne get_var("CURRREL")) {
# For update tests, let's do the update package info log stuff, # For update tests, let's do the update package info log stuff,
# it may be useful for diagnosing the cause of the failure # it may be useful for diagnosing the cause of the failure
advisory_get_installed_packages; advisory_get_installed_packages;
advisory_check_nonmatching_packages(fatal => 0); advisory_check_nonmatching_packages(fatal => 0);
}
}
} }

View File

@ -477,6 +477,7 @@ sub setup_workaround_repo {
assert_script_run "mkdir -p /mnt/workarounds_repo"; assert_script_run "mkdir -p /mnt/workarounds_repo";
assert_script_run "pushd /mnt/workarounds_repo"; assert_script_run "pushd /mnt/workarounds_repo";
my %workarounds = ( my %workarounds = (
"35" => [],
"36" => [], "36" => [],
"37" => [], "37" => [],
"38" => [], "38" => [],
@ -784,6 +785,9 @@ sub gnome_initial_setup {
# except 'language' is never *really* skipped (see above) # except 'language' is never *really* skipped (see above)
@nexts = grep { $_ ne 'keyboard' } @nexts; @nexts = grep { $_ ne 'keyboard' } @nexts;
@nexts = grep { $_ ne 'timezone' } @nexts; @nexts = grep { $_ ne 'timezone' } @nexts;
# 'additional software sources' screen did not display on F28-F34:
# https://gitlab.gnome.org/GNOME/gnome-initial-setup/-/issues/59
@nexts = grep { $_ ne 'software' } @nexts if ($relnum < 35);
} }
else { else {
# 'timezone' and 'software' are suppressed for the 'existing user' # 'timezone' and 'software' are suppressed for the 'existing user'
@ -920,6 +924,11 @@ sub anaconda_create_user {
wait_still_screen 2; wait_still_screen 2;
_type_user_password(); _type_user_password();
} }
# FIXME: this is selected by default from F36 (20210118.n.0) on.
# we can drop this block and associated needles entirely on F35 EOL
unless (check_screen "anaconda_install_user_creation_admin_selected") {
assert_and_click "anaconda_install_user_creation_make_admin";
}
assert_and_click "anaconda_spoke_done"; assert_and_click "anaconda_spoke_done";
# since 20170105, we will get a warning here when the password # since 20170105, we will get a warning here when the password
# contains non-ASCII characters. Assume only switched layouts # contains non-ASCII characters. Assume only switched layouts

View File

@ -0,0 +1,16 @@
{
"area": [
{
"type": "match",
"height": 21,
"ypos": 188,
"xpos": 500,
"width": 185
}
],
"properties": [],
"tags": [
"LANGUAGE-arabic",
"anaconda_install_user_creation_admin_selected"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"ypos": 214,
"type": "match",
"xpos": 566,
"height": 21,
"width": 106
}
],
"properties": [],
"tags": [
"LANGUAGE-arabic",
"anaconda_install_user_creation_make_admin"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"xpos": 354,
"height": 21,
"ypos": 187,
"width": 156,
"type": "match"
}
],
"properties": [],
"tags": [
"LANGUAGE-french",
"anaconda_install_user_creation_admin_selected"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"width": 194,
"height": 21,
"ypos": 187,
"xpos": 344,
"type": "match"
}
],
"properties": [],
"tags": [
"LANGUAGE-french",
"anaconda_install_user_creation_admin_selected"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"type": "match",
"xpos": 343,
"height": 21,
"width": 264,
"ypos": 213
}
],
"properties": [],
"tags": [
"ENV-DISTRI-fedora",
"LANGUAGE-french",
"anaconda_install_user_creation_make_admin"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"height": 21,
"width": 152,
"ypos": 195,
"type": "match",
"xpos": 360
}
],
"properties": [],
"tags": [
"LANGUAGE-japanese",
"anaconda_install_user_creation_admin_selected"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"width": 194,
"height": 21,
"ypos": 187,
"xpos": 344,
"type": "match"
}
],
"properties": [],
"tags": [
"LANGUAGE-japanese",
"anaconda_install_user_creation_admin_selected"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"width": 188,
"height": 17,
"type": "match",
"ypos": 226,
"xpos": 384
}
],
"properties": [],
"tags": [
"LANGUAGE-japanese",
"anaconda_install_user_creation_make_admin"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"width": 283,
"type": "match",
"ypos": 187,
"xpos": 248,
"height": 21
}
],
"properties": [],
"tags": [
"LANGUAGE-russian",
"anaconda_install_user_creation_admin_selected"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"type": "match",
"height": 21,
"ypos": 212,
"width": 326,
"xpos": 354
}
],
"properties": [],
"tags": [
"LANGUAGE-russian",
"anaconda_install_user_creation_make_admin"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

View File

@ -0,0 +1,16 @@
{
"area": [
{
"width": 194,
"height": 21,
"ypos": 187,
"xpos": 344,
"type": "match"
}
],
"properties": [],
"tags": [
"LANGUAGE-english",
"anaconda_install_user_creation_admin_selected"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View File

@ -0,0 +1,17 @@
{
"area": [
{
"type": "match",
"height": 21,
"ypos": 212,
"width": 194,
"xpos": 360
}
],
"properties": [],
"tags": [
"ENV-DISTRI-fedora",
"LANGUAGE-english",
"anaconda_install_user_creation_make_admin"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

View File

@ -28,13 +28,19 @@ sub run {
# "repo addrepo" is older format from before Fedora 37, # "repo addrepo" is older format from before Fedora 37,
# "Add the 'addrepo" is newer format from F37+ # "Add the 'addrepo" is newer format from F37+
assert_script_run 'grep "\(repo \|Add the \'\)addrepo.*' . ${addrepourl} . '" /tmp/packaging.log'; assert_script_run 'grep "\(repo \|Add the \'\)addrepo.*' . ${addrepourl} . '" /tmp/packaging.log';
# ...this line tells us it added the repo called 'addrepo' # ...this line tells us it added the repo called 'addrepo' (<F36)...
assert_script_run 'grep "Added the \'addrepo\'" /tmp/anaconda.log'; if (script_run 'grep "\(added\|enabled\) repo: .addrepo." /tmp/packaging.log') {
# ...and this tells us it worked (I hope). # this is F36+
assert_script_run 'grep "Load metadata for the \'addrepo\'" /tmp/anaconda.log'; assert_script_run 'grep "Added the ' . "'addrepo'" . '" /tmp/anaconda.log';
}
# ...and one of these tells us it worked (I hope). This one is <F35...
if (script_run 'grep "enabled repo.*nfs" /tmp/packaging.log') {
# ...these are F35+
assert_script_run 'grep "Load metadata for the ' . "'addrepo'" . '" /tmp/anaconda.log';
assert_script_run 'grep "Loaded metadata from.*file:///run/install/addrepo.nfs" /tmp/anaconda.log'; assert_script_run 'grep "Loaded metadata from.*file:///run/install/addrepo.nfs" /tmp/anaconda.log';
} }
} }
}
if ($repourl =~ /^hd:/) { if ($repourl =~ /^hd:/) {
assert_script_run "mount |grep 'fedora_image.iso'"; assert_script_run "mount |grep 'fedora_image.iso'";
} }
@ -52,9 +58,29 @@ sub run {
elsif ($repourl) { elsif ($repourl) {
# there are only three hard problems in software development: # there are only three hard problems in software development:
# naming things, cache expiry, off-by-one errors...and quoting # naming things, cache expiry, off-by-one errors...and quoting
assert_script_run 'grep "Added the \'anaconda\'" /tmp/anaconda.log'; # we need single quotes (at the perl level) around the start
assert_script_run 'grep "Load metadata for the \'anaconda\'" /tmp/anaconda.log'; # of this, so the backslashes are not interpreted by perl but
assert_script_run 'grep "Loaded metadata from.*' . ${repourl} . '" /tmp/anaconda.log'; # passed through to ultimately be interpreted by 'grep'
# itself. We need double quotes around $repourl so that *is*
# interpreted by perl. And we need quotes around the entire
# expression at the bash level, and single quotes around the
# text 'anaconda' at the level of grep, as the string we're
# actually matching on literally has 'anaconda' in it.
if (script_run 'grep "enabled repo: ' . "'anaconda'.*${repourl}" . '" /tmp/packaging.log') {
# in F35+, the "enabled repo" log line is gone, instead
# we'll check some log messages from the dnf manager module
# that show up in anaconda.log. Can drop the above branch
# and only go with this branch after F34 EOL.
#
# in F36+, the "added repo: " line in packaging.log is
# gone too, instead we get "Added the 'XXX' repository"
# in anaconda.log
if (script_run 'grep "added repo: ' . "'anaconda'.*${repourl}" . '" /tmp/packaging.log') {
assert_script_run 'grep "Added the ' . "'anaconda'" . '" /tmp/anaconda.log';
}
assert_script_run 'grep "Load metadata for the ' . "'anaconda'" . '" /tmp/anaconda.log';
assert_script_run 'grep "Loaded metadata from ' . ".*${repourl}" . '" /tmp/anaconda.log';
}
} }
if ($repourl) { if ($repourl) {
# check we don't have an error indicating our repo wasn't used. # check we don't have an error indicating our repo wasn't used.

View File

@ -11,8 +11,9 @@ sub _set_root_password {
my $root_password = get_var("ROOT_PASSWORD") || "weakpassword"; my $root_password = get_var("ROOT_PASSWORD") || "weakpassword";
unless (get_var("INSTALLER_NO_ROOT")) { unless (get_var("INSTALLER_NO_ROOT")) {
assert_and_click "anaconda_install_root_password"; assert_and_click "anaconda_install_root_password";
# we have to click 'enable root account' before typing the # from anaconda-35.22.1 onwards, we have to click 'enable root
#password # account' before typing the password. For older versions,
# clicking this needle does nothing but is harmless
assert_and_click "anaconda_install_root_password_screen"; assert_and_click "anaconda_install_root_password_screen";
# wait out animation # wait out animation
wait_still_screen 2; wait_still_screen 2;

View File

@ -74,6 +74,17 @@ sub run {
# away # away
wait_still_screen 5; wait_still_screen 5;
_enter_password($password); _enter_password($password);
# FIXME: workaround RHBZ#2120433 - catch if the login failed
# and retry if so
my $relnum = get_release_number;
if ($relnum > 37 && $desktop eq 'gnome') {
unless (check_screen ["getting_started", "apps_menu_button"], 45) {
if (check_screen "graphical_login_input") {
record_soft_failure "Login failed, probably #2120433 - retrying";
_enter_password($password);
}
}
}
} }
# For GNOME, handle initial-setup or welcome tour, unless _WELCOME_DONE # For GNOME, handle initial-setup or welcome tour, unless _WELCOME_DONE

View File

@ -21,9 +21,11 @@ sub run {
elsif (get_var('SUBVARIANT') eq 'Workstation') { elsif (get_var('SUBVARIANT') eq 'Workstation') {
$env = 'workstation-product-environment'; $env = 'workstation-product-environment';
} }
# line looks like: # pre-F35 line looks like:
# 07:51:39,382 INF modules.payloads.payload.dnf.utils: selected environment: custom-environment
# F35+ line looks like:
# 07:40:26,614 DBG ui.lib.software: Selecting the 'custom-environment' environment. # 07:40:26,614 DBG ui.lib.software: Selecting the 'custom-environment' environment.
assert_script_run "grep 'Selecting the.*environment' /tmp/anaconda.log /tmp/packaging.log | tail -1 | grep $env"; assert_script_run "egrep '(selected env|Selecting the.*environment)' /tmp/anaconda.log /tmp/packaging.log | tail -1 | grep $env";
send_key "ctrl-alt-f6"; send_key "ctrl-alt-f6";
assert_screen "anaconda_main_hub", 30; assert_screen "anaconda_main_hub", 30;
return; return;

View File

@ -52,8 +52,9 @@ sub run {
# we must # we must
unless (get_var("DESKTOP") eq "gnome") { unless (get_var("DESKTOP") eq "gnome") {
assert_and_click "anaconda_install_root_password"; assert_and_click "anaconda_install_root_password";
# we have to click 'enable root account' before typing the # from anaconda-35.22.1 onwards, we have to click 'enable root
# password # account' before typing the password. For older versions,
# clicking this needle does nothing but is harmless
assert_and_click "anaconda_install_root_password_screen"; assert_and_click "anaconda_install_root_password_screen";
type_safely "weakadminpassword"; type_safely "weakadminpassword";
send_key "tab"; send_key "tab";

View File

@ -142,8 +142,8 @@ sub reboot_system {
if (check_screen "system_menu_button") { if (check_screen "system_menu_button") {
# In a logged in desktop, we access power options through system menu # In a logged in desktop, we access power options through system menu
assert_and_click "system_menu_button"; assert_and_click "system_menu_button";
# In KDE the reboot entry is right here, on GNOME we need to # In KDE since F34, reboot entry is right here, otherwise we need to
# enter some kind of power option submenu. # enter some kind of power option submenu
assert_screen ["power_entry", "reboot_entry"]; assert_screen ["power_entry", "reboot_entry"];
click_lastmatch; click_lastmatch;
assert_and_click "reboot_entry" if (match_has_tag("power_entry")); assert_and_click "reboot_entry" if (match_has_tag("power_entry"));
@ -160,8 +160,7 @@ sub reboot_system {
sub power_off { sub power_off {
# Powers-off the machine. # Powers-off the machine.
assert_and_click "system_menu_button"; assert_and_click "system_menu_button";
# in KDE, there's no submenu to access, the button is right here, # in KDE since F34, there's no submenu to access, the button is right here
# in GNOME we need the submenu
assert_screen ["power_entry", "power_off_entry"]; assert_screen ["power_entry", "power_off_entry"];
click_lastmatch; click_lastmatch;
assert_and_click "power_off_entry" if (match_has_tag("power_entry")); assert_and_click "power_off_entry" if (match_has_tag("power_entry"));

View File

@ -21,8 +21,7 @@ sub run {
do_bootloader(postinstall => 0, params => '3'); do_bootloader(postinstall => 0, params => '3');
} }
boot_to_login_screen; boot_to_login_screen;
# tty1 is used here for historic reasons, but it's not hurting # use tty1 to avoid RHBZ #1821499 on F32 Workstation live
# anything and changing it might, so let's leave it...
$self->root_console(tty => 1); $self->root_console(tty => 1);
# ensure we actually have some package updates available # ensure we actually have some package updates available
prepare_test_packages; prepare_test_packages;

View File

@ -38,7 +38,13 @@ sub run {
my $desktop = get_var("DESKTOP"); my $desktop = get_var("DESKTOP");
# Set up some variables to make the test compatible with different desktops. # Set up some variables to make the test compatible with different desktops.
# Defaults are for the Gnome desktop. # Defaults are for the Gnome desktop.
my $version = get_var("VERSION");
# FIXME: When we entirely move to version 36 with all the tests
# we will get rid of gedit (which ceased to exist on 36).
my $editor = "gnome-text-editor"; my $editor = "gnome-text-editor";
if ($version <= 35 and $version ne "Rawhide") {
$editor = "gedit";
}
my $viewer = "evince"; my $viewer = "evince";
my $maximize = "super-up"; my $maximize = "super-up";
my $term = "gnome-terminal"; my $term = "gnome-terminal";

View File

@ -21,6 +21,23 @@ sub run {
unless (script_run "rpm-ostree status -b | grep stable") { unless (script_run "rpm-ostree status -b | grep stable") {
$rebase = "devel"; $rebase = "devel";
} }
# FIXME special cases for read-only transition from 36 to 37
# we can drop these (revert the whole relevant commit) once
# 37 is stable
my $orig;
if (get_var("CURRREL") eq "36") {
if (get_var("VERSION") eq "37") {
# rebase to rawhide
$rebase = "rawhide";
$orig = "devel";
}
elsif (get_var("VERSION") eq "38") {
# rebase to devel
$rebase = "devel";
$orig = "rawhide";
}
}
# rebase to the appropriate release, arch # rebase to the appropriate release, arch
validate_script_output "rpm-ostree rebase fedora/${rebase}/${arch}/iot", sub { m/systemctl reboot/ }, 300; validate_script_output "rpm-ostree rebase fedora/${rebase}/${arch}/iot", sub { m/systemctl reboot/ }, 300;
script_run "systemctl reboot", 0; script_run "systemctl reboot", 0;
@ -29,12 +46,7 @@ sub run {
$self->root_console(tty => 3); $self->root_console(tty => 3);
# check booted branch to make sure successful rebase # check booted branch to make sure successful rebase
if ($rebase eq "devel") { validate_script_output "rpm-ostree status -b", sub { m/$rebase/ }, 300;
validate_script_output "rpm-ostree status -b", sub { m/devel/ }, 300;
}
if ($rebase eq "stable") {
validate_script_output "rpm-ostree status -b", sub { m/stable/ }, 300;
}
# rollback and reboot # rollback and reboot
validate_script_output "rpm-ostree rollback", sub { m/systemctl reboot/ }, 300; validate_script_output "rpm-ostree rollback", sub { m/systemctl reboot/ }, 300;
@ -44,10 +56,13 @@ sub run {
$self->root_console(tty => 3); $self->root_console(tty => 3);
# check to make sure rollback successful, also account for branched (devel) # check to make sure rollback successful, also account for branched (devel)
if ($rebase eq "devel") { if ($orig) {
validate_script_output "rpm-ostree status -b", sub { m/$orig/ }, 300;
}
elsif ($rebase eq "devel") {
validate_script_output "rpm-ostree status -b", sub { m/stable/ }, 300; validate_script_output "rpm-ostree status -b", sub { m/stable/ }, 300;
} }
if ($rebase eq "stable") { elsif ($rebase eq "stable") {
validate_script_output "rpm-ostree status -b", sub { m/rawhide|devel/ }, 300; validate_script_output "rpm-ostree status -b", sub { m/rawhide|devel/ }, 300;
} }
} }

View File

@ -60,7 +60,9 @@ sub run {
$cannedtag = (split /-/, $build)[-1]; $cannedtag = (split /-/, $build)[-1];
} }
my $name = ucfirst($id); my $name = ucfirst($id);
my $fullname = $name . " Linux"; # from F35 onwards, $NAME is "Fedora Linux" not just "Fedora"
my $relnum = get_release_number;
my $fullname = $relnum > 34 ? $name . " Linux" : $name;
my $rawrel = get_var("RAWREL", ''); my $rawrel = get_var("RAWREL", '');
# Should be the version number or Rawhide. # Should be the version number or Rawhide.
my $version_id = get_var("VERSION"); my $version_id = get_var("VERSION");

View File

@ -34,10 +34,10 @@ sub run {
assert_script_run "systemctl restart firewalld.service"; assert_script_run "systemctl restart firewalld.service";
# deploy the server # deploy the server
my $args = "-U --auto-forwarders --realm=TEST.OPENQA.FEDORAPROJECT.ORG --domain=test.openqa.fedoraproject.org --ds-password=monkeys123 --admin-password=monkeys123 --setup-dns --reverse-zone=2.16.172.in-addr.arpa --allow-zone-overlap"; my $args = "-U --auto-forwarders --realm=TEST.OPENQA.FEDORAPROJECT.ORG --domain=test.openqa.fedoraproject.org --ds-password=monkeys123 --admin-password=monkeys123 --setup-dns --reverse-zone=2.16.172.in-addr.arpa --allow-zone-overlap";
# FIXME: For upgrades, we turn off dnssec to avoid hitting # FIXME: For upgrades to F>34, we turn off dnssec to avoid hitting
# #1999321 # #1999321
my $relnum = get_release_number; my $relnum = get_release_number;
$args .= ' --no-dnssec-validation' if (get_var("UPGRADE")); $args .= ' --no-dnssec-validation' if (get_var("UPGRADE") && $relnum > 34);
assert_script_run "ipa-server-install $args", 1200; assert_script_run "ipa-server-install $args", 1200;
# enable and start the systemd service # enable and start the systemd service

View File

@ -14,7 +14,8 @@ sub run {
# Navigate to the Update screen # Navigate to the Update screen
select_cockpit_update(); select_cockpit_update();
# FIXME Workaround for RHBZ #1765685, remove if that is ever fixed # FIXME Workaround for RHBZ #1765685 - remove after F34 EOL (seems
# to be fixed in F35 and F36)
sleep 30; sleep 30;
# Switch on automatic updates # Switch on automatic updates