Run postinstall notifications test on updates (#512)
All checks were successful
CI via Tox and perl / tox (pull_request) Successful in 1m37s
CI via Tox and perl / checkwiki (pull_request) Successful in 35s
CI via Tox and perl / perl (pull_request) Successful in 3m29s

This requires a bit of special handling because we do not want
to just use the POSTINSTALL flow as we don't want to log in
until we've done all our preparations. So let's use ENTRYPOINT,
do the repo prep and update stuff directly in desktop_notifications,
and load _advisory_post in the ENTRYPOINT list. We'll have to
remember to keep this all in sync if we change the flow, but we
don't do that a lot.

Signed-off-by: Adam Williamson <awilliam@redhat.com>
This commit is contained in:
Adam Williamson 2026-04-07 17:30:57 -07:00
commit bd2fc548b5
2 changed files with 30 additions and 5 deletions

View file

@ -459,6 +459,15 @@
"updates-desktops": 5
}
},
"desktop_notifications_postinstall_updatetest": {
"profile_groups": {
"updates-desktops": 5
},
"settings": {
"BOOTFROM": "c",
"ENTRYPOINT": "desktop_notifications _advisory_post"
}
},
"desktop_printing": {
"profile_groups": {
"updates-desktops": 5

View file

@ -22,18 +22,32 @@ sub create_user_i3_config {
assert_script_run "restorecon -vr /home/$login/.config";
}
sub run {
my $self = shift;
my $desktop = get_var("DESKTOP");
my $relnum = get_release_number;
# for the live image case, handle bootloader here
sub _handle_bootloader {
# boot with '3' to get to a console. factored out of run() as
# it's repeated on the update flow
if (get_var("BOOTFROM")) {
do_bootloader(postinstall => 1, params => '3');
}
else {
do_bootloader(postinstall => 0, params => '3');
}
}
sub run {
my $self = shift;
my $desktop = get_var("DESKTOP");
my $relnum = get_release_number;
_handle_bootloader;
boot_to_login_screen;
# do _advisory_update steps on update tests; ensure this stays
# in sync with _advisory_update
if (get_var('ADVISORY_OR_TASK')) {
$self->root_console(tty => 3);
repo_setup;
script_run 'reboot', 0;
_handle_bootloader;
boot_to_login_screen;
}
# tty1 is used here for historic reasons, but it's not hurting
# anything and changing it might, so let's leave it...
$self->root_console(tty => 1);
@ -106,6 +120,8 @@ sub run {
assert_screen 'graphical_login', 60;
wait_still_screen 10, 30;
dm_perform_login($desktop, $password);
# on update flow we encounter welcome screen for first time here
handle_welcome_screen if (get_var('ADVISORY_OR_TASK'));
}
check_desktop(timeout => 180);
# now, WE WAIT. this is just an unconditional wait - rather than