diff --git a/tests/upgrade_graph.pm b/tests/upgrade_graph.pm new file mode 100644 index 00000000..6d24db23 --- /dev/null +++ b/tests/upgrade_graph.pm @@ -0,0 +1,64 @@ +use base "installedtest"; +use strict; +use testapi; +use utils; + +sub run { + my $self = shift; + my $release = lc(get_var("VERSION")); + my $relnum = $release; + + $self->root_console(tty=>3); + + 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) + repo_setup(); + my $params = "-y --releasever=${relnum}"; + if ($release eq "rawhide") { + $params .= " --nogpgcheck"; + } + + 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: