diff --git a/lib/main_common.pm b/lib/main_common.pm index 40d6fcf394e7..30ac9e1275d2 100644 --- a/lib/main_common.pm +++ b/lib/main_common.pm @@ -1761,6 +1761,7 @@ sub load_extra_tests_console { loadtest 'console/wpa_supplicant' unless (!is_x86_64 || is_sle('<15') || is_leap('<15.1') || is_jeos || is_public_cloud); loadtest 'console/python_scientific' unless (is_sle("<15")); loadtest "console/parsec" if is_tumbleweed; + loadtest "console/perl_bootloader" unless get_var('PUBLIC_CLOUD'); } sub load_extra_tests_sdk { diff --git a/schedule/qam/common/mau-bootloader.yaml b/schedule/qam/common/mau-bootloader.yaml new file mode 100644 index 000000000000..f0cf8ada7585 --- /dev/null +++ b/schedule/qam/common/mau-bootloader.yaml @@ -0,0 +1,11 @@ +--- +name: mau-bootloader +description: > + perl-bootloader test + https://progress.opensuse.org/issues/139091 +schedule: + - installation/bootloader_start + - boot/boot_to_desktop + - console/system_prepare + - console/consoletest_setup + - console/perl_bootloader diff --git a/tests/console/perl_bootloader.pm b/tests/console/perl_bootloader.pm index 0edbcafd2363..2c74da1b5eba 100644 --- a/tests/console/perl_bootloader.pm +++ b/tests/console/perl_bootloader.pm @@ -1,12 +1,11 @@ # SUSE's openQA tests # -# Copyright 2019 SUSE LLC +# Copyright 2023 SUSE LLC # SPDX-License-Identifier: FSFAP -# Package: perl-Bootloader dracut -# Summary: Test the perl-Bootloader package by generating the initrd, -# calling update-bootloader and rebooting the host -# Maintainer: Paolo Stivanin +# Package: perl-Bootloader +# Summary: Basic functional test for pbl package +# Maintainer: QE Core use base 'opensusebasetest'; use testapi; @@ -15,7 +14,7 @@ use strict; use warnings; use utils 'zypper_call'; use power_action_utils 'power_action'; -use version_utils 'is_sle'; +use version_utils qw(is_sle is_opensuse); sub run { my ($self) = @_; @@ -24,15 +23,43 @@ sub run { if (script_run 'rpm -q perl-Bootloader' == 1) { zypper_call 'in perl-Bootloader'; } - assert_script_run 'mkinitrd'; - assert_script_run 'update-bootloader'; - if (is_sle('>=12-SP2')) { - validate_script_output('pbl --show', sub { /grub2/ }); + # pbl --loader is not available on <15-SP3 + if (is_sle(">=15-SP3") || is_opensuse) { + if (get_var('UEFI')) { + assert_script_run 'pbl --loader grub2-efi'; + validate_script_output 'cat /etc/sysconfig/bootloader', qr/LOADER_TYPE="grub2-efi"/; + } + else { + assert_script_run 'pbl --loader grub2'; + validate_script_output 'cat /etc/sysconfig/bootloader', qr/LOADER_TYPE="grub2"/; + } } + assert_script_run 'pbl --install'; + assert_script_run 'pbl --config'; + power_action('reboot', textmode => 1); + $self->wait_boot; + select_serial_terminal; + + # Add new option and check if it exists + assert_script_run 'pbl --add-option TEST_OPTION="test_value"'; + validate_script_output 'cat /etc/default/grub', qr/test_value/; + + # Delete option and check if it was deleted + assert_script_run 'pbl --del-option "TEST_OPTION"'; + assert_script_run('! grep -q "TEST_OPTION" /etc/default/grub'); + + # Create new log file and check if it exists and contains pbl log + assert_script_run 'pbl --log /var/log/pbl-test.log'; + validate_script_output 'cat /var/log/pbl-test.log', qr/pbl/; power_action('reboot', textmode => 1); $self->wait_boot; + +} + +sub post_fail_hook { + upload_logs('/var/log/pbl.log'); } 1;