1
0
mirror of https://pagure.io/fedora-qa/os-autoinst-distri-fedora.git synced 2024-11-21 13:33:08 +00:00
os-autoinst-distri-fedora/tests/_console_shutdown.pm
Adam Williamson 8251756331 Revert to having tests, not the scheduler, download packages (#108)
This effectively reverts 97618193 - but had to be done manually
and adjusted to maintain support for testing side tags and for
testing multiple tasks, since those features were added since
the update ISO change.

The 'scheduler injects ISOs of packages into the tests' approach
was intended to speed things up, especially for large updates,
and it did, but it had a few drawbacks. It means restarting
older tests from the web UI doesn't work as the ISOs get garbage
collected (you have to re-schedule in this case). And it has the
rather large problem that you can now only schedule tests from
the openQA server (or at least a machine with the openQA asset
share mounted), because the package download and ISO creation
just happen wherever the scheduler is running and assume that
the openQA asset share that will be used by the tests is at
/var/lib/openqa/share in that filesystem.

That's too big of a drawback to continue with this approach, IMO,
so this reverts back to the old way of doing things, with a bit
of refactoring to clean up the flow a little, and with support
for testing side tags and multiple tasks maintained.

As a follow-up I'm going to see if I can replace
_download_packages with a much more efficient downloader script
to mitigate the time this process takes on each test, especially
for large updates.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
2024-01-11 11:31:40 -08:00

32 lines
1.1 KiB
Perl

use base "installedtest";
use strict;
use testapi;
sub run {
my $self = shift;
# this shutdown code is only to make sure the guest disk is clean
# before uploading an image of it, we're really not "testing"
# shutdown here. So to keep things simple and reliable, we do not
# use the desktops' graphical shutdown methods, we just go to a
# console and run 'poweroff'. We can write separate tests for
# properly testing shutdown/reboot/log out from desktops.
$self->root_console(tty => 4);
# disable the hidden grub menu on Workstation, so post-install
# tests that need to edit boot params will see it. Don't use
# assert_script_run as this will fail when it's not set
script_run("grub2-editenv - unset menu_auto_hide", 0);
script_run("poweroff", 0);
assert_shutdown 180;
}
# this is not 'fatal' or 'important' as all wiki test cases are passed
# even if shutdown fails. we should have a separate test for shutdown/
# logout/reboot stuff, might need some refactoring.
sub test_flags {
return {'norollback' => 1, 'ignore_failure' => 1};
}
1;
# vim: set sw=4 et: