mirror of
https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git
synced 2025-07-28 20:55:45 +00:00
The previous version of menu_launch_type took the name of the application as an argument and it started the application. To maximize the application or to check that it has started indeed we had to do it manually. Now, the application also takes "maximize => 1" or "checkstart => 1" to maximize the application or check that it has started as optional arguments to avoid doing it manually, while it still accepts just the name of the application and behaves like it did before. Note that if you decide to use the checkstart argument, you also need to update the check-needles.py script to whitelist the application needle tag, see the example test scripts attached to this PR. Fixes: https://pagure.io/fedora-qa/os-autoinst-distri-fedora/issue/329
123 lines
5.5 KiB
Perl
123 lines
5.5 KiB
Perl
use base "installedtest";
|
|
use strict;
|
|
use testapi;
|
|
use utils;
|
|
|
|
sub run {
|
|
my $self = shift;
|
|
my $release = get_release_number;
|
|
my $rawrel = get_var("RAWREL");
|
|
my $curr = get_var("TEST") =~ "upgrade_2" ? get_var("UP2REL") : get_var("UP1REL");
|
|
my $desktop = get_var("DESKTOP");
|
|
my $user = get_var("USER_LOGIN", "test");
|
|
my $pword = get_var("USER_PASSWORD", "weakpassword");
|
|
|
|
# As this is designed, the 'upgrade_preinstall' test script
|
|
# runs before this one and ends on the root console. Therefore,
|
|
# we can assume that we are still on that root console, so
|
|
# we can safely use script assertions.
|
|
|
|
# Make serial console writable for everyone, so that we
|
|
# can use script assertions for further commands as well.
|
|
assert_script_run("chmod 666 /dev/${serialdev}");
|
|
|
|
if ($desktop eq "gnome") {
|
|
# Install Gnome specific packages
|
|
assert_script_run("dnf install -y jq dbus-x11");
|
|
# FIXME on Fedora 40, update gnome-software from updates-testing
|
|
# to ensure we have the fix for
|
|
# https://gitlab.gnome.org/GNOME/gnome-software/-/issues/2514
|
|
# drop this when the update is stable
|
|
if ($curr eq "40") {
|
|
assert_script_run("dnf -y --enablerepo=updates-testing update gnome-software", 180);
|
|
}
|
|
# Leave the CLI and come back to the login screen.
|
|
desktop_vt();
|
|
# Log onto the graphical session
|
|
send_key("ret");
|
|
wait_still_screen(1);
|
|
type_very_safely("$pword\n");
|
|
handle_welcome_screen();
|
|
check_desktop();
|
|
# After the login, let us wait that everything settles
|
|
# and that we are not too quick on the system.
|
|
wait_still_screen(5);
|
|
# According to the ticket, the 'fedora.json' file
|
|
# which lists the available versions will be created
|
|
# after the Software starts. Let's start it then on Gnome.
|
|
menu_launch_type("software", checkstart => 1);
|
|
# When Software is started for the first time, it asks whether
|
|
# a user wants to use Third Party software. We want to Ignore
|
|
# this and proceed, so if we see that we click on Ignore.
|
|
if (check_screen("gnome_software_ignore", timeout => 60)) {
|
|
click_lastmatch();
|
|
}
|
|
# Wait a couple of second, just in case the file needs a little
|
|
# longer to be created.
|
|
sleep(10);
|
|
# Close Software
|
|
send_key("alt-f4");
|
|
}
|
|
|
|
# Switch back to the CLI for further settings.
|
|
$self->root_console(tty => 3);
|
|
|
|
# For Gnome desktop only.
|
|
if ($desktop eq "gnome") {
|
|
# Switch to a user account
|
|
enter_cmd("su -l $user");
|
|
# Navigate to the version file directory
|
|
assert_script_run("cd ~/.cache/gnome-software/fedora-pkgdb-collections");
|
|
# Replace the word 'devel' with the Rawhide version number
|
|
# so Rawhide behaves like other releases, if we're upgrading
|
|
# to Rawhide
|
|
if ($release eq $rawrel) {
|
|
assert_script_run("jq '(.collections |= map(if .version == \"devel\" then .koji_name = \"f$rawrel\" | .version = \"$rawrel\" else . end))' fedora.json > fedora-updated.json");
|
|
assert_script_run("mv fedora-updated.json fedora.json");
|
|
}
|
|
# Now make sure the versions we're trying to upgrade from and to
|
|
# are both 'active'
|
|
assert_script_run("jq '(.collections |= map(if .version == \"$release\" or .version == \"$curr\" then .status = \"Active\" else . end))' fedora.json > fedora-updated.json");
|
|
assert_script_run("mv fedora-updated.json fedora.json");
|
|
# upload the modified file for debugging
|
|
upload_logs("fedora.json", failok => 1);
|
|
|
|
# Disable blanking the screen on inactivity, because if the screen gets switched off
|
|
# we will have no way to make it active again.
|
|
assert_script_run("dbus-launch --exit-with-session gsettings set org.gnome.desktop.screensaver idle-activation-enabled false");
|
|
assert_script_run("dbus-launch --exit-with-session gsettings set org.gnome.desktop.screensaver lock-enabled false");
|
|
assert_script_run("dbus-launch --exit-with-session gsettings set org.gnome.desktop.lockdown disable-lock-screen true");
|
|
# Logout the regular user
|
|
enter_cmd("exit");
|
|
}
|
|
# For KDE desktop only.
|
|
elsif ($desktop eq "kde") {
|
|
# Replace "rawhide" with the Rawhide version number if we're
|
|
# upgrading to Rawhide
|
|
assert_script_run("sed -i 's,rawhide,$rawrel,g' /usr/share/metainfo/org.fedoraproject.fedora.metainfo.xml") if ($release eq $rawrel);
|
|
# Now mark the release we want to upgrade to as stable
|
|
assert_script_run("sed -i 's,version=\"$release\" type=\".*\" date=,version=\"$release\" type=\"stable\" date=,g' /usr/share/metainfo/org.fedoraproject.fedora.metainfo.xml");
|
|
# Upload the modified file for debugging
|
|
upload_logs("/usr/share/metainfo/org.fedoraproject.fedora.metainfo.xml", failok => 1);
|
|
# Switch to the regular user
|
|
enter_cmd("su -l $user");
|
|
# Wipe last update notification time
|
|
assert_script_run("kwriteconfig5 --file PlasmaDiscoverUpdates --group Global --key LastNotificationTime --delete");
|
|
# Disable the screen locker
|
|
assert_script_run("kwriteconfig5 --file kscreenlockerrc --group Daemon --key Autolock false qdbus org.freedesktop.ScreenSaver /ScreenSaver configure");
|
|
# Exit regular user
|
|
enter_cmd("exit");
|
|
}
|
|
|
|
# Reboot system to load changes
|
|
enter_cmd("reboot");
|
|
}
|
|
|
|
sub test_flags {
|
|
return {fatal => 1};
|
|
}
|
|
|
|
1;
|
|
|
|
# vim: set sw=4 et:
|