os-autoinst-distri-rocky-mi.../tests/upgrade_preinstall.pm
Adam Williamson aacd01ea8b add encrypted workstation upgrade tests (current and previous)
Summary:
This requires us to handle decryption each time we reboot in
the upgrade process, so factor that little block out into the
base class so we don't have to keep pasting it. It's also a
bit tricky to integrate into the 'catch a boot loop' code we
have to deal with #1349721, but I think this should work. There
is a matching openqa_fedora_tools diff to generate the disk
image.

Test Plan:
Run the tests, check that they work, run the other
upgrade and encrypted install tests and check they still work
properly too.

Reviewers: garretraziel

Reviewed By: garretraziel

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D922
2016-07-08 08:56:57 -07:00

56 lines
1.5 KiB
Perl

use base "installedtest";
use strict;
use testapi;
sub run {
my $self = shift;
# decrypt disks during boot if necessary
if (get_var("ENCRYPT_PASSWORD")) {
$self->boot_decrypt(60);
}
# wait for either graphical or text login
if (get_var('DESKTOP')) {
$self->boot_to_login_screen("graphical_login", 30, 90); # DM takes time to load
} else {
$self->boot_to_login_screen();
}
# switch to TTY3 for both, graphical and console tests
$self->root_console(tty=>3);
# disable screen blanking (update can take a long time)
script_run "setterm -blank 0";
# upgrader should be installed on up-to-date system
assert_script_run 'dnf -y update', 1800;
script_run "reboot";
# decrypt if necessary
if (get_var("ENCRYPT_PASSWORD")) {
$self->boot_decrypt(60);
}
if (get_var('DESKTOP')) {
$self->boot_to_login_screen("graphical_login", 30, 90); # DM takes time to load
} else {
$self->boot_to_login_screen();
}
$self->root_console(tty=>3);
my $update_command = 'dnf -y install dnf-plugin-system-upgrade';
assert_script_run $update_command, 600;
}
sub test_flags {
# without anything - rollback to 'lastgood' snapshot if failed
# 'fatal' - whole test suite is in danger if this fails
# 'milestone' - after this test succeeds, update 'lastgood'
# 'important' - if this fails, set the overall state to 'fail'
return { fatal => 1 };
}
1;
# vim: set sw=4 et: