enforce standard coding on all Perl files

This commit is contained in:
Trevor Cooper 2023-02-12 14:59:37 -08:00 committed by Trevor Cooper
parent 7184b13708
commit 488bbe07a0
237 changed files with 932 additions and 932 deletions

View File

@ -28,8 +28,8 @@ sub select_disks {
);
my %iscsi = %{$args{iscsi}};
# Anaconda hub
assert_screen "anaconda_main_hub", 300; #
# Damn animation delay can cause bad clicks here too - wait for it
assert_screen "anaconda_main_hub", 300; #
# Damn animation delay can cause bad clicks here too - wait for it
sleep 1;
assert_and_click "anaconda_main_hub_install_destination";
@ -150,7 +150,7 @@ sub custom_blivet_add_partition {
assert_and_click "anaconda_blivet_size_unit";
assert_and_click "anaconda_blivet_size_unit_mib";
send_key "shift-tab"; # input is one tab back from unit selection listbox
send_key "shift-tab"; # input is one tab back from unit selection listbox
# size input can contain whole set of different values, so we can't match it with needle
type_safely $args{size} . "\n";
@ -178,7 +178,7 @@ sub custom_blivet_add_partition {
sub custom_add_partition {
# Used to add partition on Rocky custom-gui partitioning screen
# in Anaconda. Should be called when custom-gui is displayed and free space is selected.
# You can pass device type for partition (needle tagged anaconda_custom_devicetype_$devicetype should exist), size of that partition in MiBs, desired filesystem of that partition
# You can pass device type for partition (needle tagged anaconda_custom_devicetype_$devicetype should exist), size of that partition in MiBs, desired filesystem of that partition
# (anaconda_custom_part_fs_$filesystem should exist) and mountpoint of that partition (e. g. string "/boot").
my %args = (
devicetype => "",
@ -368,7 +368,7 @@ sub get_full_repo {
if ($repourl !~ m/^(nfs|hd:)/) {
# Everything variant doesn't exist for modular composes atm,
# only Server
$repourl .= "/".get_var("ARCH")."/os";
$repourl .= "/" . get_var("ARCH") . "/os";
}
return $repourl;
}
@ -483,7 +483,7 @@ sub report_bug_text {
my $timestamp = time();
#
# First, collect the credentials.
my $login = get_var("BUGZILLA_LOGIN");
my $login = get_var("BUGZILLA_LOGIN");
my $password = get_var("_SECRET_BUGZILLA_PASSWORD");
my $apikey = get_var("_SECRET_BUGZILLA_APIKEY");
# Choose item 1 - Report the bug.

View File

@ -21,7 +21,7 @@ sub post_fail_hook {
if (check_screen "anaconda_error_report", 10) {
assert_and_click "anaconda_error_report";
$has_traceback = 1;
} elsif (check_screen "anaconda_text_error", 10) { # also for text install
} elsif (check_screen "anaconda_text_error", 10) { # also for text install
type_string "1\n";
$has_traceback = 1;
}
@ -73,21 +73,21 @@ sub post_fail_hook {
}
if ($dracut) {
upload_logs "/run/initramfs/rdsosreport.txt", failok=>1;
upload_logs "/run/initramfs/rdsosreport.txt", failok => 1;
# that's all that's really useful, so...
return;
}
upload_logs "/tmp/X.log", failok=>1;
upload_logs "/tmp/anaconda.log", failok=>1;
upload_logs "/tmp/packaging.log", failok=>1;
upload_logs "/tmp/storage.log", failok=>1;
upload_logs "/tmp/syslog", failok=>1;
upload_logs "/tmp/program.log", failok=>1;
upload_logs "/tmp/dnf.log", failok=>1;
upload_logs "/tmp/dnf.librepo.log", failok=>1;
upload_logs "/tmp/dnf.rpm.log", failok=>1;
upload_logs "/tmp/dbus.log", failok=>1;
upload_logs "/tmp/X.log", failok => 1;
upload_logs "/tmp/anaconda.log", failok => 1;
upload_logs "/tmp/packaging.log", failok => 1;
upload_logs "/tmp/storage.log", failok => 1;
upload_logs "/tmp/syslog", failok => 1;
upload_logs "/tmp/program.log", failok => 1;
upload_logs "/tmp/dnf.log", failok => 1;
upload_logs "/tmp/dnf.librepo.log", failok => 1;
upload_logs "/tmp/dnf.rpm.log", failok => 1;
upload_logs "/tmp/dbus.log", failok => 1;
if ($has_traceback) {
# Upload Anaconda traceback logs
@ -131,7 +131,7 @@ sub root_console {
# tty3 has a shell on all f31+ installer and live images
send_key "ctrl-alt-f3";
}
console_login(user=>"root", timeout=>$args{timeout});
console_login(user => "root", timeout => $args{timeout});
}
1;

View File

@ -32,7 +32,7 @@ sub convert_to_bz_timestamp {
sub get_newest_bug {
# This subroutine makes an API call to Bugzilla and
# fetches the newest bug that have been created.
# fetches the newest bug that have been created.
# This will be the bug created by Anaconda in this
# test run.
my ($timestamp, $login) = @_;

View File

@ -24,7 +24,7 @@ sub start_cockpit {
assert_screen "cockpit_login", 60;
# this happened on early Modular Server composes...
record_soft_failure "Unbranded Cockpit" if (match_has_tag "cockpit_login_unbranded");
wait_still_screen(stilltime=>5, similarity_level=>45);
wait_still_screen(stilltime => 5, similarity_level => 45);
if ($login) {
type_safely "root";
wait_screen_change { send_key "tab"; };
@ -57,6 +57,6 @@ sub check_updates {
my $logfile = shift;
sleep 2;
my $checkresult = script_run "dnf check-update > $logfile";
upload_logs "$logfile", failok=>1;
return($checkresult);
upload_logs "$logfile", failok => 1;
return ($checkresult);
}

View File

@ -41,7 +41,7 @@ sub x11_start_program {
send_key "alt-f2";
assert_screen "desktop_runner";
type_string $program, 20;
sleep 5; # because of KDE dialog - SUSE guys are doing the same!
sleep 5; # because of KDE dialog - SUSE guys are doing the same!
send_key "ret", 1;
}

View File

@ -44,7 +44,7 @@ sub start_webui {
disable_firefox_studies;
type_string "startx /usr/bin/firefox -width 1024 -height 768 https://ipa001.test.openqa.fedoraproject.org\n";
assert_screen ["freeipa_webui_login", $user_screen], 60;
wait_still_screen(stilltime=>5, similarity_level=>45);
wait_still_screen(stilltime => 5, similarity_level => 45);
# softfail on kerberos ticket bugs meaning we get auto-logged in
# as the requested user when we don't expect to be
if (match_has_tag $user_screen) {

View File

@ -16,7 +16,7 @@ sub root_console {
# Switch to a default or specified TTY and log in as root.
my $self = shift;
my %args = (
tty => 1, # what TTY to login to
tty => 1, # what TTY to login to
@_);
if (get_var("SERIAL_CONSOLE")) {
# select the first virtio terminal, for now we assume we can
@ -27,7 +27,7 @@ sub root_console {
# For normal terminal emulation, use key combo to reach a tty
send_key "ctrl-alt-f$args{tty}";
}
console_login; # Do the login.
console_login; # Do the login.
}
sub post_fail_hook {
@ -43,7 +43,7 @@ sub post_fail_hook {
assert_script_run "dhclient";
}
else {
$self->root_console(tty=>6);
$self->root_console(tty => 6);
# fix up keyboard layout, if we failed before the test did this
# itself; if it's already been done, should be safe, will just
# fail and carry on
@ -88,7 +88,7 @@ sub post_fail_hook {
}
if ($dracut) {
upload_logs "/run/initramfs/rdsosreport.txt", failok=>1;
upload_logs "/run/initramfs/rdsosreport.txt", failok => 1;
# that's all that's really useful, so...
return;
}
@ -125,14 +125,14 @@ sub post_fail_hook {
}
# Sometimes useful for diagnosing FreeIPA issues
upload_logs "/etc/nsswitch.conf", failok=>1;
upload_logs "/etc/nsswitch.conf", failok => 1;
if (get_var("FLAVOR") eq "updates-everything-boot-iso") {
# for installer creation test
script_run "df -h";
upload_logs "/root/imgbuild/pylorax.log", failok=>1;
upload_logs "/root/imgbuild/lorax.log", failok=>1;
upload_logs "/root/imgbuild/program.log", failok=>1;
upload_logs "/root/imgbuild/pylorax.log", failok => 1;
upload_logs "/root/imgbuild/lorax.log", failok => 1;
upload_logs "/root/imgbuild/program.log", failok => 1;
}
if (get_var("TEST") eq "live_build") {
@ -149,10 +149,10 @@ sub post_fail_hook {
}
}
# For update tests, let's do the update package info log stuff,
# it may be useful for diagnosing the cause of the failure
advisory_get_installed_packages;
advisory_check_nonmatching_packages(fatal=>0);
# For update tests, let's do the update package info log stuff,
# it may be useful for diagnosing the cause of the failure
advisory_get_installed_packages;
advisory_check_nonmatching_packages(fatal => 0);
1;

View File

@ -11,7 +11,7 @@ use utils;
our @EXPORT = qw(parse_module_list is_listed);
# This subroutine takes the output from the dnf module list command
# and deletes all unnecessary stuff and returns an array of hash
# and deletes all unnecessary stuff and returns an array of hash
# references where each hash consists of (module, stream, profile).
# The subroutine only recognizes one profile but it is enough
# for the sake of the modularity testing.
@ -37,7 +37,7 @@ sub parse_module_list {
sub is_listed {
my ($module, $stream, $listref) = @_;
my $found = 0;
foreach (@{ $listref }) {
foreach (@{$listref}) {
if ($_->{module} eq $module and $_->{stream} eq $stream) {
$found = 1;
}

View File

@ -22,9 +22,9 @@ sub run_with_error_check {
# by using 'unless' and 'expect_not_found=>1' here we avoid
# the web UI showing each failure to see the error message as
# a 'failed match'
die "Error screen appeared" unless (wait_serial($error_screen, timeout=>5, expect_not_found=>1));
die "Error screen appeared" unless (wait_serial($error_screen, timeout => 5, expect_not_found => 1));
$func->();
die "Error screen appeared" unless (wait_serial($error_screen, timeout=>5, expect_not_found=>1));
die "Error screen appeared" unless (wait_serial($error_screen, timeout => 5, expect_not_found => 1));
}
else {
die "Error screen appeared" if (check_screen $error_screen, 5);
@ -40,7 +40,7 @@ sub type_safely {
type_string($string, wait_screen_change => 3, max_interval => 20);
# similarity level 45 as there will commonly be a flashing
# cursor and the default level (47) is slightly too tight
wait_still_screen(stilltime=>2, similarity_level=>45);
wait_still_screen(stilltime => 2, similarity_level => 45);
}
# high-level 'type this string extremely safely and rather slow'
@ -50,7 +50,7 @@ sub type_very_safely {
type_string($string, wait_screen_change => 1, max_interval => 1);
# similarity level 45 as there will commonly be a flashing
# cursor and the default level (47) is slightly too tight
wait_still_screen(stilltime=>5, similarity_level=>45);
wait_still_screen(stilltime => 5, similarity_level => 45);
}
sub get_release_number {
@ -60,13 +60,13 @@ sub get_release_number {
my $version = get_var("VERSION");
my $rawrel = get_var("RAWREL", "Rawhide");
return $rawrel if ($version eq "Rawhide");
return $version
return $version;
}
sub get_version_major {
my $version = get_var('VERSION');
my $version_major = substr($version, 0, index($version, q/./));
return $version_major
my $version = get_var('VERSION');
my $version_major = substr($version, 0, index($version, q/./));
return $version_major;
}
sub get_code_name {
@ -74,11 +74,11 @@ sub get_code_name {
my $version = get_var('VERSION');
my $version_major = get_version_major;
given($version_major){
when ('9') { $code_name = 'Blue Onyx'; }
when ('10') { $code_name = 'Smoky Quartz'; }
when ('11') { $code_name = 'Lavender Calcite'; }
default{
given ($version_major) {
when ('9') { $code_name = 'Blue Onyx'; }
when ('10') { $code_name = 'Smoky Quartz'; }
when ('11') { $code_name = 'Lavender Calcite'; }
default {
$code_name = 'Green Obsidian';
}
}
@ -98,9 +98,9 @@ sub desktop_vt {
# stop as soon as any command fails, so we use ||: to make the
# first grep return 0 even if it matches nothing
eval { $xout = script_output ' loginctl | grep test ||:; ps -e | egrep "(gnome-session|Xwayland|Xorg)" | grep -o tty[0-9]' };
my $tty = 1; # default
my $tty = 1; # default
while ($xout =~ /tty(\d)/g) {
$tty = $1; # most recent match is probably best
$tty = $1; # most recent match is probably best
}
send_key "ctrl-alt-f${tty}";
# work around https://gitlab.gnome.org/GNOME/gnome-software/issues/582
@ -129,7 +129,7 @@ sub boot_to_login_screen {
$args{timeout} //= 300;
if (testapi::is_serial_terminal) {
# For serial console, just wait for the login prompt
unless (wait_serial "login:", timeout=>$args{timeout}) {
unless (wait_serial "login:", timeout => $args{timeout}) {
die "No login prompt shown on serial console.";
}
}
@ -140,14 +140,14 @@ sub boot_to_login_screen {
# The following is true for non-serial console.
my $count = 5;
while (check_screen("login_screen", 3) && $count > 0) {
sleep 5;
$count -= 1;
sleep 5;
$count -= 1;
}
assert_screen "login_screen", $args{timeout};
if (match_has_tag "graphical_login") {
wait_still_screen 10, 30;
assert_screen "login_screen";
}
assert_screen "login_screen", $args{timeout};
if (match_has_tag "graphical_login") {
wait_still_screen 10, 30;
assert_screen "login_screen";
}
}
}
@ -174,7 +174,7 @@ sub desktop_switch_layout {
# if already selected, we're good
return if (check_screen "${environment}_layout_${layout}", 3);
# otherwise we need to switch
my $switcher = "alt-shift"; # anaconda
my $switcher = "alt-shift"; # anaconda
$switcher = "super-spc" if $environment eq 'gnome';
# KDE? not used yet
send_key $switcher;
@ -188,7 +188,7 @@ sub desktop_switch_layout {
sub _console_login_finish {
# The check differs according to the console used.
if (testapi::is_serial_terminal) {
unless (wait_serial("-bash-.*[#\$]", timeout=>5, expect_not_found=>1)) {
unless (wait_serial("-bash-.*[#\$]", timeout => 5, expect_not_found => 1)) {
record_soft_failure "It looks like profile sourcing failed";
}
}
@ -219,7 +219,7 @@ sub console_login {
# enable a new proper login based on the user variable.
if (get_var("SERIAL_CONSOLE")) {
# Check for the usual prompt.
if (wait_serial("~\][#\$]", timeout=>5, quiet=>1)) {
if (wait_serial("~\][#\$]", timeout => 5, quiet => 1)) {
type_string "logout\n";
# Wait a bit to let the logout properly finish.
sleep 10;
@ -233,7 +233,7 @@ sub console_login {
# Let's perform a simple login test. This is the same as
# whoami, but has the advantage of existing in installer env
assert_script_run "id -un";
unless (wait_serial $args{user}, timeout=>5) {
unless (wait_serial $args{user}, timeout => 5) {
die "Logging onto the serial console has failed.";
}
}
@ -392,8 +392,8 @@ sub do_bootloader {
# in SLOF usb-xhci driver failed sometimes in powerpc
type_safely " $args{params}";
}
save_screenshot; # for debug purpose
# ctrl-X boots from grub editor mode
save_screenshot; # for debug purpose
# ctrl-X boots from grub editor mode
send_key "ctrl-x";
# return boots all other cases
send_key "ret";
@ -515,7 +515,7 @@ sub _repo_setup_compose {
assert_script_run 'dnf config-manager --set-disabled updates-testing updates';
# script_run returns the exit code, so 'unless' here means 'if the file exists'
unless (script_run 'test -f /etc/yum.repos.d/fedora-updates-modular.repo') {
assert_script_run 'dnf config-manager --set-disabled updates-testing-modular updates-modular';
assert_script_run 'dnf config-manager --set-disabled updates-testing-modular updates-modular';
}
# we use script_run here as the rawhide and modular repo files
# won't always exist and we don't want to bother testing or
@ -525,9 +525,9 @@ sub _repo_setup_compose {
script_run "sed -i -e 's,^metalink,#metalink,g' -e 's,^mirrorlist,#mirrorlist,g' -e 's,^#baseurl.*basearch,baseurl=${location}/Modular/\$basearch,g' -e 's,^#baseurl.*source,baseurl=${location}/Modular/source,g' /etc/yum.repos.d/{fedora-modular,fedora-rawhide-modular}.repo", 0;
# this can be used for debugging if something is going wrong
# unless (script_run 'pushd /etc/yum.repos.d && tar czvf yumreposd.tar.gz * && popd') {
# upload_logs "/etc/yum.repos.d/yumreposd.tar.gz";
# }
# unless (script_run 'pushd /etc/yum.repos.d && tar czvf yumreposd.tar.gz * && popd') {
# upload_logs "/etc/yum.repos.d/yumreposd.tar.gz";
# }
}
sub _repo_setup_updates {
@ -538,9 +538,9 @@ sub _repo_setup_updates {
my $currrel = get_var("CURRREL", "0");
repos_mirrorlist();
# this can be used for debugging repo config if something is wrong
# unless (script_run 'pushd /etc/yum.repos.d && tar czvf yumreposd.tar.gz * && popd') {
# upload_logs "/etc/yum.repos.d/yumreposd.tar.gz";
# }
# unless (script_run 'pushd /etc/yum.repos.d && tar czvf yumreposd.tar.gz * && popd') {
# upload_logs "/etc/yum.repos.d/yumreposd.tar.gz";
# }
if ($version > $currrel) {
# Disable updates-testing so other bad updates don't break us
# this will do nothing on upgrade tests as we're on a stable
@ -651,11 +651,11 @@ sub console_initial_setup {
# Set timezone
type_string "2\n";
wait_still_screen 5;
type_string "1\n"; # Set timezone
type_string "1\n"; # Set timezone
wait_still_screen 5;
type_string "1\n"; # Europe
type_string "1\n"; # Europe
wait_still_screen 5;
type_string "37\n"; # Prague
type_string "37\n"; # Prague
wait_still_screen 7;
# Set root password
@ -671,14 +671,14 @@ sub console_initial_setup {
# Create user
type_string "5\n";
wait_still_screen 5;
type_string "1\n"; # create new
type_string "1\n"; # create new
wait_still_screen 5;
type_string "3\n"; # set username
type_string "3\n"; # set username
wait_still_screen 5;
type_string get_var("USER_LOGIN", "test");
send_key "ret";
wait_still_screen 5;
type_string "5\n"; # set password
type_string "5\n"; # set password
wait_still_screen 5;
type_string get_var("USER_PASSWORD", "weakpassword");
send_key "ret";
@ -686,13 +686,13 @@ sub console_initial_setup {
type_string get_var("USER_PASSWORD", "weakpassword");
send_key "ret";
wait_still_screen 5;
type_string "6\n"; # make him an administrator
type_string "6\n"; # make him an administrator
wait_still_screen 5;
type_string "c\n";
wait_still_screen 7;
assert_screen "console_initial_SETUP_DONE", 30;
type_string "c\n"; # continue
type_string "c\n"; # continue
}
sub handle_welcome_screen {
@ -735,18 +735,18 @@ sub gnome_initial_setup {
# https://fedoraproject.org//wiki/Changes/ReduceInitialSetupRedundancy
# https://bugzilla.redhat.com/show_bug.cgi?id=1474787 ,
# except 'language' is never *really* skipped (see above)
@nexts = grep {$_ ne 'keyboard'} @nexts;
@nexts = grep {$_ ne 'timezone'} @nexts;
@nexts = grep { $_ ne 'keyboard' } @nexts;
@nexts = grep { $_ ne 'timezone' } @nexts;
}
else {
# 'timezone' and 'software' are suppressed for the 'existing user'
# form of g-i-s
@nexts = grep {$_ ne 'software'} @nexts;
@nexts = grep {$_ ne 'timezone'} @nexts;
@nexts = grep { $_ ne 'software' } @nexts;
@nexts = grep { $_ ne 'timezone' } @nexts;
}
# 'additional software sources' screen does not display on F28+:
# https://bugzilla.gnome.org/show_bug.cgi?id=794825
@nexts = grep {$_ ne 'software'} @nexts;
@nexts = grep { $_ ne 'software' } @nexts;
# note: in g-i-s 3.37.91 and later, the first screen in systemwide
# mode has a "Start Setup" button, not a "Next" button
@ -761,13 +761,13 @@ sub gnome_initial_setup {
# wait a bit in case of animation
wait_still_screen 3;
# one more check for frickin auth_required
if (check_screen "auth_required") {
if (check_screen "auth_required") {
record_soft_failure "Unexpected authentication required: https://gitlab.gnome.org/GNOME/gnome-initial-setup/-/issues/106";
send_key "esc";
}
# GDM 3.24.1 dumps a cursor in the middle of the screen here...
mouse_hide if ($args{prelogin});
for my $n (1..scalar(@nexts)) {
for my $n (1 .. scalar(@nexts)) {
# click 'Next' $nexts times, moving the mouse to avoid
# highlight problems, sleeping to give it time to get
# to the next screen between clicks
@ -794,7 +794,7 @@ sub gnome_initial_setup {
unless (get_var("VNC_CLIENT")) {
# click 'Skip' one time (this is the 'goa' screen). We don't
# get it on VNC_CLIENT case as network isn't working (yet)
mouse_set(100,100);
mouse_set(100, 100);
wait_screen_change { assert_and_click "skip_button"; };
}
send_key "ret";
@ -843,7 +843,7 @@ sub anaconda_create_user {
@_
);
my $user_login = get_var("USER_LOGIN") || "test";
assert_and_click("anaconda_install_user_creation", timeout=>$args{timeout});
assert_and_click("anaconda_install_user_creation", timeout => $args{timeout});
assert_screen "anaconda_install_user_creation_screen";
# wait out animation
wait_still_screen 2;
@ -901,21 +901,21 @@ sub check_desktop {
}
sub download_modularity_tests {
# Download the modularity test script, place in the system and then
# modify the access rights to make it executable.
# Download the modularity test script, place in the system and then
# modify the access rights to make it executable.
my ($whitelist) = @_;
# we need python3-yaml for the script to run
assert_script_run 'dnf -y install python3-yaml', 180;
assert_script_run 'curl -o /root/test.py https://pagure.io/fedora-qa/modularity_testing_scripts/raw/master/f/modular_functions.py';
if ($whitelist eq 'whitelist') {
assert_script_run 'curl -o /root/whitelist https://pagure.io/fedora-qa/modularity_testing_scripts/raw/master/f/whitelist';
assert_script_run 'curl -o /root/whitelist https://pagure.io/fedora-qa/modularity_testing_scripts/raw/master/f/whitelist';
}
assert_script_run 'chmod 755 /root/test.py';
}
sub quit_firefox {
# Quit Firefox, handling the 'close multiple tabs' warning screen if
# it shows up
# Quit Firefox, handling the 'close multiple tabs' warning screen if
# it shows up
send_key "ctrl-q";
# expect to get to either the tabs warning or a console
if (check_screen ["user_console", "root_console", "firefox_close_tabs"], 30) {
@ -927,14 +927,14 @@ sub quit_firefox {
}
sub start_with_launcher {
# Get the name of the needle with a launcher, find the launcher in the menu
# and click on it to start the application. This function works for the
# Gnome desktop.
# Get the name of the needle with a launcher, find the launcher in the menu
# and click on it to start the application. This function works for the
# Gnome desktop.
# $launcher holds the launcher needle, but some of the apps are hidden in a submenu
# so this must be handled first to find the launcher needle.
my ($launcher,$submenu,$group) = @_;
my ($launcher, $submenu, $group) = @_;
$submenu //= '';
$group //= '';
my $desktop = get_var('DESKTOP');
@ -979,7 +979,7 @@ sub start_with_launcher {
assert_and_click $launcher;
wait_still_screen 5;
}
elsif ($desktop eq 'kde'){
elsif ($desktop eq 'kde') {
# Click on the KDE launcher icon
assert_and_click 'kde_menu_launcher';
wait_still_screen 2;
@ -1006,7 +1006,7 @@ sub start_with_launcher {
sub quit_with_shortcut {
# Quit the application using the Alt-F4 keyboard shortcut
# Quit the application using the Alt-F4 keyboard shortcut
send_key 'alt-f4';
wait_still_screen 5;
assert_screen 'workspace';
@ -1035,12 +1035,12 @@ sub advisory_get_installed_packages {
# occasionally, for some reason, it's unhappy about sorting;
# we shouldn't fail the test in this case, just upload the
# files so we can see why...
upload_logs "/tmp/allpkgs.txt", failok=>1;
upload_logs "/var/log/updatepkgs.txt", failok=>1;
upload_logs "/tmp/allpkgs.txt", failok => 1;
upload_logs "/var/log/updatepkgs.txt", failok => 1;
}
# we'll try and upload the output even if comm 'failed', as it
# does in fact still write it in some cases
upload_logs "/var/log/testedpkgs.txt", failok=>1;
upload_logs "/var/log/testedpkgs.txt", failok => 1;
}
sub advisory_check_nonmatching_packages {
@ -1068,8 +1068,8 @@ sub advisory_check_nonmatching_packages {
script_run 'for pkg in $(cat /var/log/updatepkgnames.txt); do rpm -q $pkg && rpm -q $pkg --last | head -1 | cut -d" " -f1 | xargs rpm -q --qf "%{SOURCERPM} %{EPOCH} %{NAME}-%{VERSION}-%{RELEASE}\n" >> /tmp/installedupdatepkgs.txt; done';
script_run 'sort -u -o /tmp/installedupdatepkgs.txt /tmp/installedupdatepkgs.txt';
# for debugging, may as well always upload these, can't hurt anything
upload_logs "/tmp/installedupdatepkgs.txt", failok=>1;
upload_logs "/var/log/updatepkgs.txt", failok=>1;
upload_logs "/tmp/installedupdatepkgs.txt", failok => 1;
upload_logs "/var/log/updatepkgs.txt", failok => 1;
# if any line appears in installedupdatepkgs.txt but not updatepkgs.txt,
# we have a problem.
if (script_run 'comm -23 /tmp/installedupdatepkgs.txt /var/log/updatepkgs.txt > /var/log/installednotupdatedpkgs.txt') {
@ -1081,7 +1081,7 @@ sub advisory_check_nonmatching_packages {
# this exits 1 if the file is zero-length, 0 if it's longer
# if it's 0, that's *BAD*: we want to upload the file and fail
unless (script_run 'test -s /var/log/installednotupdatedpkgs.txt') {
upload_logs "/var/log/installednotupdatedpkgs.txt", failok=>1;
upload_logs "/var/log/installednotupdatedpkgs.txt", failok => 1;
my $message = "Package(s) from update not installed when it should have been! See installednotupdatedpkgs.txt";
if ($args{fatal}) {
set_var("_ACNMP_DONE", "1");
@ -1134,7 +1134,7 @@ sub select_rescue_mode {
}
}
assert_screen "rescue_select", 180; # it takes time to start anaconda
assert_screen "rescue_select", 180; # it takes time to start anaconda
}
sub copy_devcdrom_as_isofile {
@ -1289,10 +1289,10 @@ sub check_prerelease {
assert_screen "prerelease_note";
}
elsif ($prerelease == 0) {
# If the prerelease note is shown, where it should not be, die!
if (check_screen "prerelease_note") {
# If the prerelease note is shown, where it should not be, die!
if (check_screen "prerelease_note") {
die "The PRERELEASE tag is shown, but it should NOT be.";
}
}
}
}
@ -1372,12 +1372,12 @@ sub click_unwanted_notifications {
my @closed;
while ($count > 0 && check_screen "desktop_update_notification_popup", 5) {
$count -= 1;
push (@closed, 'update');
push(@closed, 'update');
click_lastmatch;
}
if (check_screen "akonadi_migration_agent_running", 5) {
click_lastmatch;
push (@closed, 'akonadi');
push(@closed, 'akonadi');
}
return @closed;
}
@ -1400,7 +1400,7 @@ sub register_application {
sub solidify_wallpaper {
my $desktop = get_var("DESKTOP");
if ($desktop eq "kde") {
# Run the Desktop settings
# Run the Desktop settings
# FIXME workaround a weird bug where alt-d-s does something
# different until you right click on the desktop:
# https://bugzilla.redhat.com/show_bug.cgi?id=1933118

20
main.pm
View File

@ -33,7 +33,7 @@ testapi::set_distribution(fedoradistribution->new());
# Stolen from openSUSE.
sub unregister_needle_tags($) {
my $tag = shift;
my @a = @{ needle::tags($tag) };
my @a = @{needle::tags($tag)};
for my $n (@a) { $n->unregister(); }
}
@ -49,14 +49,14 @@ sub unregister_needle_tags($) {
# 'LANGUAGE-' at all.
sub unregister_prefix_tags {
my ($prefix, $valueref) = @_;
NEEDLE: for my $needle ( needle::all() ) {
NEEDLE: for my $needle (needle::all()) {
my $unregister = 0;
for my $tag ( @{$needle->{'tags'}} ) {
for my $tag (@{$needle->{'tags'}}) {
if ($tag =~ /^\Q$prefix/) {
# We have at least one tag matching the prefix, so we
# *MAY* want to un-register the needle
$unregister = 1;
for my $value ( @{$valueref} ) {
for my $value (@{$valueref}) {
# At any point if we hit a prefix-value match, we
# know we need to keep this needle and can skip
# to the next
@ -85,13 +85,13 @@ sub cleanup_needles() {
# Unregister desktop needles of other desktops when DESKTOP is specified
if (get_var('DESKTOP')) {
unregister_prefix_tags('DESKTOP', [ get_var('DESKTOP') ])
unregister_prefix_tags('DESKTOP', [get_var('DESKTOP')]);
}
# Unregister non-language-appropriate needles. See unregister_except_
# tags for details; basically all needles with at least one LANGUAGE-
# tag will be unregistered unless they match the current langauge.
my $langref = [ get_var('LANGUAGE') || 'english' ];
my $langref = [get_var('LANGUAGE') || 'english'];
unregister_prefix_tags('LANGUAGE', $langref);
}
$needle::cleanuphandler = \&cleanup_needles;
@ -195,15 +195,15 @@ sub load_install_tests() {
my $partitioning = get_var('PARTITIONING');
# if PARTITIONING is unset, or one of [...], use disk_guided_empty,
# which is the simplest / 'default' case.
if (! $partitioning || $partitioning ~~ ['guided_empty', 'guided_free_space']) {
if (!$partitioning || $partitioning ~~ ['guided_empty', 'guided_free_space']) {
$storage = "tests/disk_guided_empty.pm";
}
else {
$storage = "tests/disk_".$partitioning.".pm";
$storage = "tests/disk_" . $partitioning . ".pm";
}
autotest::loadtest $storage;
if (get_var("ENCRYPT_PASSWORD")){
if (get_var("ENCRYPT_PASSWORD")) {
autotest::loadtest "tests/disk_guided_encrypted.pm";
}
@ -330,7 +330,7 @@ sub load_postinstall_tests() {
}
autotest::loadtest $storagepost if ($storagepost);
if (get_var("UEFI") &! get_var("NO_UEFI_POST") &! get_var("START_AFTER_TEST")) {
if (get_var("UEFI") & !get_var("NO_UEFI_POST") & !get_var("START_AFTER_TEST")) {
autotest::loadtest "tests/uefi_postinstall.pm";
}

View File

@ -5,7 +5,7 @@ use utils;
sub run {
my $self = shift;
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# figure out which packages from the update actually got installed
# (if any) as part of this test
advisory_get_installed_packages;
@ -15,7 +15,7 @@ sub run {
}
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

@ -7,7 +7,7 @@ sub run {
my $self = shift;
# do the 'repo setup' steps, which set up a repo containing the
# update packages and run 'dnf update'
$self->root_console(tty=>3);
$self->root_console(tty => 3);
repo_setup;
if (get_var("ADVISORY_BOOT_TEST")) {
# to test boot stuff - in case the update touched grub2, or dracut,
@ -25,7 +25,7 @@ sub run {
}
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

@ -7,7 +7,7 @@ use tapnet;
sub run {
my $self = shift;
# Anaconda hub
assert_screen "anaconda_main_hub", 300; #
assert_screen "anaconda_main_hub", 300; #
assert_and_click "anaconda_main_hub_kdump";
assert_and_click "anaconda_kdump_disable";
@ -16,7 +16,7 @@ sub run {
}
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

@ -7,7 +7,7 @@ use tapnet;
sub run {
my $self = shift;
# Anaconda hub
assert_screen "anaconda_main_hub", 300; #
assert_screen "anaconda_main_hub", 300; #
assert_and_click "anaconda_main_hub_kdump";
assert_and_click "anaconda_kdump_enable";
@ -16,7 +16,7 @@ sub run {
}
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

@ -7,7 +7,7 @@ use tapnet;
sub run {
my $self = shift;
# Anaconda hub
assert_screen "anaconda_main_hub", 300; #
assert_screen "anaconda_main_hub", 300; #
if (check_screen ["anaconda_network_connected"], 60) {
# network is connected already, we're done
@ -22,7 +22,7 @@ sub run {
}
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

@ -30,7 +30,7 @@ sub run {
}
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

@ -77,7 +77,7 @@ sub run {
# call do_bootloader with postinstall=0, the params, and the mutex,
# unless we're a VNC install client (no bootloader there)
unless (get_var("VNC_CLIENT")) {
do_bootloader(postinstall=>0, params=>$params, mutex=>$mutex, timeout=>$timeout);
do_bootloader(postinstall => 0, params => $params, mutex => $mutex, timeout => $timeout);
}
# Read variables for identification tests (see further).
@ -99,7 +99,7 @@ sub run {
# we direct the installer to virtio-console1, and use
# virtio-console as a root console
select_console('virtio-console1');
unless (wait_serial "Use text mode", timeout=>120) { die "Anaconda has not started."; }
unless (wait_serial "Use text mode", timeout => 120) { die "Anaconda has not started."; }
type_string "2\n";
unless (wait_serial "Installation") { die "Text version of Anaconda has not started."; }
}
@ -130,17 +130,17 @@ sub run {
my $relnum = get_release_number;
my $dclick = 0;
$dclick = 1 if (get_var("DESKTOP") eq "kde" && $relnum > 33);
assert_and_click("live_start_anaconda_icon", dclick=>$dclick);
assert_and_click("live_start_anaconda_icon", dclick => $dclick);
unless (check_screen "anaconda_select_install_lang", 180) {
# click it again - on KDE since 2019-10 or so it seems
# like the first attempt sometimes just doesn't work
assert_and_click("live_start_anaconda_icon", dclick=>$dclick, timeout=>300);
assert_and_click("live_start_anaconda_icon", dclick => $dclick, timeout => 300);
}
}
my $language = get_var('LANGUAGE') || 'english';
# wait for anaconda to appear; we click to work around
# RHBZ #1566066 if it happens
assert_and_click("anaconda_select_install_lang", timeout=>300);
assert_and_click("anaconda_select_install_lang", timeout => 300);
# Select install language
wait_screen_change { assert_and_click "anaconda_select_install_lang_input"; };
@ -177,7 +177,7 @@ sub run {
# Here, we will watch for the graphical elements in Anaconda main hub.
my $branched = get_var('VERSION');
if ($identification eq 'true' or $branched ne "Rawhide") {
check_left_bar(); # See utils.pm
check_left_bar(); # See utils.pm
check_prerelease();
check_version();
}
@ -185,13 +185,13 @@ sub run {
# didn't match anything: if the Rawhide warning didn't
# show by now it never will, so we'll just wait for the
# hub to show up.
assert_screen "anaconda_main_hub", 900; #
assert_screen "anaconda_main_hub", 900; #
}
}
}
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

@ -81,16 +81,16 @@ sub run {
}
# just for convenience - sometimes it's useful to see this log
# for a success case
upload_logs "/tmp/packaging.log", failok=>1;
upload_logs "/tmp/packaging.log", failok => 1;
send_key "ctrl-alt-f6";
# Anaconda hub
assert_screen "anaconda_main_hub", 30; #
assert_screen "anaconda_main_hub", 30; #
}
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

@ -4,7 +4,7 @@ use testapi;
sub run {
my $self = shift;
$self->root_console(tty=>4);
$self->root_console(tty => 4);
assert_script_run 'top -i -n20 -b > /var/tmp/top.log', 120;
upload_logs '/var/tmp/top.log';
unless (get_var("CANNED")) {
@ -43,7 +43,7 @@ sub run {
}
sub test_flags {
return { 'ignore_failure' => 1 };
return {'ignore_failure' => 1};
}
1;

View File

@ -5,7 +5,7 @@ use testapi;
sub run {
my $self = shift;
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# if this is a non-English, non-switched layout, load US layout
# at this point
# FIXME: this is all kind of a mess, as on such configs we need

View File

@ -11,14 +11,14 @@ sub run {
# with a password that requires Arabic support.
# Such attempt to log in would always fail.
if (get_var("LANGUAGE") ne "arabic" && get_var("USER_LOGIN") ne "false") {
console_login(user=>get_var("USER_LOGIN", "test"), password=>get_var("USER_PASSWORD", "weakpassword"));
console_login(user => get_var("USER_LOGIN", "test"), password => get_var("USER_PASSWORD", "weakpassword"));
}
if (get_var("ROOT_PASSWORD")) {
console_login(user=>"root", password=>get_var("ROOT_PASSWORD"));
console_login(user => "root", password => get_var("ROOT_PASSWORD"));
}
}
sub test_flags {
return { fatal => 1, milestone => 1 };
return {fatal => 1, milestone => 1};
}
1;
# vim: set sw=4 et:

View File

@ -10,7 +10,7 @@ sub run {
# 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);
$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
@ -23,7 +23,7 @@ sub run {
# 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 };
return {'norollback' => 1, 'ignore_failure' => 1};
}
1;

View File

@ -11,7 +11,7 @@ sub run {
# handle bootloader, if requested
if (get_var("GRUB_POSTINSTALL")) {
do_bootloader(postinstall=>1, params=>get_var("GRUB_POSTINSTALL"), timeout=>$wait_time);
do_bootloader(postinstall => 1, params => get_var("GRUB_POSTINSTALL"), timeout => $wait_time);
$wait_time = 240;
}
@ -24,23 +24,23 @@ sub run {
boot_to_login_screen(timeout => $wait_time);
# switch to TTY3 for both, graphical and console tests
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# do user login unless USER_LOGIN is set to string 'false'
unless (get_var("USER_LOGIN") eq "false") {
# this avoids us waiting 90 seconds for a # to show up
my $origprompt = $testapi::distri->{serial_term_prompt};
$testapi::distri->{serial_term_prompt} = '$ ';
console_login(user=>get_var("USER_LOGIN", "test"), password=>get_var("USER_PASSWORD", "weakpassword"));
console_login(user => get_var("USER_LOGIN", "test"), password => get_var("USER_PASSWORD", "weakpassword"));
$testapi::distri->{serial_term_prompt} = $origprompt;
}
if (get_var("ROOT_PASSWORD")) {
console_login(user=>"root", password=>get_var("ROOT_PASSWORD"));
console_login(user => "root", password => get_var("ROOT_PASSWORD"));
}
}
sub test_flags {
return { fatal => 1, milestone => 1 };
return {fatal => 1, milestone => 1};
}
1;

View File

@ -12,7 +12,7 @@ sub run {
}
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

@ -137,14 +137,14 @@ sub run {
# there are various things we might have to do at a console here
# before we actually reboot. let's figure them all out first...
my @actions;
push (@actions, 'consoletty0') if (get_var("ARCH") eq "aarch64");
push (@actions, 'abrt') if (get_var("ABRT", '') eq "system");
push (@actions, 'rootpw') if (get_var("INSTALLER_NO_ROOT"));
push (@actions, 'stagingrepos') if (get_var("DNF_CONTENTDIR"));
push(@actions, 'consoletty0') if (get_var("ARCH") eq "aarch64");
push(@actions, 'abrt') if (get_var("ABRT", '') eq "system");
push(@actions, 'rootpw') if (get_var("INSTALLER_NO_ROOT"));
push(@actions, 'stagingrepos') if (get_var("DNF_CONTENTDIR"));
# memcheck test doesn't need to reboot at all. Rebooting from GUI
# for lives is unreliable. And if we're already doing something
# else at a console, we may as well reboot from there too
push (@actions, 'reboot') if (!get_var("MEMCHECK") && (get_var("LIVE") || @actions));
push(@actions, 'reboot') if (!get_var("MEMCHECK") && (get_var("LIVE") || @actions));
# our approach for taking all these actions doesn't work on VNC
# installs, fortunately we don't need any of them in that case
# yet, so for now let's just flush the list here if we're VNC
@ -159,14 +159,14 @@ sub run {
}
# OK, if we're here, we got actions, so head to a console. Switch
# to console after liveinst sometimes takes a while, so 30 secs
$self->root_console(timeout=>30);
$self->root_console(timeout => 30);
# this is something a couple of actions may need to know
my $mount = "/mnt/sysimage";
if (get_var("CANNED")) {
# finding the actual host system root is fun for ostree...
$mount = "/mnt/sysimage/ostree/deploy/fedora*/deploy/*.?";
}
if (grep {$_ eq 'consoletty0'} @actions) {
if (grep { $_ eq 'consoletty0' } @actions) {
# somehow, by this point, localized keyboard layout has been
# loaded for this tty, so for French and Arabic at least we
# need to load the 'us' layout again for the next command to
@ -180,15 +180,15 @@ sub run {
# regenerate the bootloader config
assert_script_run "chroot $mount grub2-mkconfig -o /boot/efi/EFI/rocky/grub.cfg";
}
if (grep {$_ eq 'abrt'} @actions) {
# Chroot in the newly installed system and switch on ABRT systemwide
assert_script_run "chroot $mount abrt-auto-reporting 1";
if (grep { $_ eq 'abrt' } @actions) {
# Chroot in the newly installed system and switch on ABRT systemwide
assert_script_run "chroot $mount abrt-auto-reporting 1";
}
if (grep {$_ eq 'rootpw'} @actions) {
if (grep { $_ eq 'rootpw' } @actions) {
my $root_password = get_var("ROOT_PASSWORD") || "weakpassword";
assert_script_run "echo 'root:$root_password' | chpasswd -R $mount";
}
if (grep {$_ eq 'stagingrepos'} @actions) {
if (grep { $_ eq 'stagingrepos' } @actions) {
if (get_version_major() < 9) {
assert_script_run 'sed -i -e "s/^mirrorlist/#mirrorlist/g;s,^#\(baseurl=http[s]*://\),\1,g" ' . $mount . '/etc/yum.repos.d/Rocky-BaseOS.repo';
assert_script_run 'sed -i -e "s/^mirrorlist/#mirrorlist/g;s,^#\(baseurl=http[s]*://\),\1,g" ' . $mount . '/etc/yum.repos.d/Rocky-AppStream.repo';