use base "installedtest"; use strict; use testapi; use utils; sub run { my $self = shift; my $release = lc(get_var("VERSION")); my $relnum = $release; if ($release eq "rawhide") { $relnum = get_var("RAWREL", "rawhide"); } # disable screen blanking (download can take a long time) script_run "setterm -blank 0"; # use compose repo (compose tests) or set up update repo (update tests) cleanup_workaround_repo; repo_setup(); my $params = "-y --releasever=${relnum}"; if ($release eq "rawhide") { $params .= " --nogpgcheck"; } # FIXME workaround for #1811234 affecting F30 -> F31 upgrades # remove when bug is fixed or F30 goes EOL if (get_var("UPGRADE") && $relnum eq "31" && get_var("UP1REL") eq "30") { assert_script_run "dnf -y module reset maven", 120; } if (script_run "dnf ${params} system-upgrade download", 6000) { record_soft_failure "dnf failed so retry with --allowerasing"; $params .= " --allowerasing"; assert_script_run "dnf ${params} system-upgrade download", 6000; } upload_logs "/var/log/dnf.log"; upload_logs "/var/log/dnf.rpm.log"; script_run "dnf system-upgrade reboot", 0; # fail immediately if we see a DNF error message, but keep an eye # out for the bootloader so we can handle it if requested check_screen ["upgrade_fail", "bootloader"], 15; die "DNF reported failure" if (match_has_tag "upgrade_fail"); # handle bootloader, if requested; set longer timeout as sometimes # reboot here seems to take a long time if (get_var("GRUB_POSTINSTALL")) { do_bootloader(postinstall => 1, params => get_var("GRUB_POSTINSTALL"), timeout => 120); } # decrypt, if encrypted if (get_var("ENCRYPT_PASSWORD")) { boot_decrypt(120); # in encrypted case we need to wait a bit so postinstall test # doesn't bogus match on the encryption prompt we just completed # before it disappears from view sleep 5; } } sub test_flags { return {fatal => 1}; } 1; # vim: set sw=4 et: