Add a perltidy check and apply it to the entire codebase

Signed-off-by: Adam Williamson <awilliam@redhat.com>
This commit is contained in:
Adam Williamson 2022-07-28 13:32:57 -07:00
parent ad5eb54715
commit 1a65993d36
267 changed files with 1346 additions and 1250 deletions

1
.gitignore vendored
View File

@ -7,3 +7,4 @@
.tox/
.coverage
coverage.xml
.tidyall.d/

16
.perltidyrc Normal file
View File

@ -0,0 +1,16 @@
# Workaround needed for handling non-ASCII in files.
# # See <https://github.com/houseabsolute/perl-code-tidyall/issues/84>.
--character-encoding=none
--no-valign
# 120 characters would be desired but it is not feasible right now
#-l=120 # 120 characters per line
-l=160
-fbl # don't change blank lines
-fnl # don't remove new lines
-nsfs # no spaces before semicolons
-baao # space after operators
-bbao # space before operators
-pt=2 # no spaces around ()
-bt=2 # no spaces around []
-sbt=2 # no spaces around {}
-sct # stack closing tokens )}

3
.tidyallrc Normal file
View File

@ -0,0 +1,3 @@
[PerlTidy]
select = **/*.pm
argv = --profile=$ROOT/.perltidyrc

View File

@ -6,7 +6,7 @@
- job:
name: os-autoinst-perl
run: ci/perl.yaml
nodeset: fedora-latest-container
nodeset: fedora-36-vm
- project:
check:

View File

@ -2,7 +2,7 @@
tasks:
- name: Install required packages
package:
name: ['os-autoinst', 'perl-Test-Strict', 'perl-Test-Harness', 'perl-JSON', 'perl-REST-Client']
name: ['os-autoinst', 'perl-Test-Strict', 'perl-Test-Harness', 'perl-JSON', 'perl-REST-Client', 'perl-Code-TidyAll']
state: present
become: yes
- name: Run perl tests

View File

@ -28,7 +28,7 @@ sub select_disks {
);
my %iscsi = %{$args{iscsi}};
# Anaconda hub
assert_screen "anaconda_main_hub", 300; #
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";
@ -300,7 +300,7 @@ sub get_full_repo {
# only Server
my $variant = 'Everything';
$variant = 'Server' if (get_var("MODULAR"));
$repourl .= "/${variant}/".get_var("ARCH")."/os";
$repourl .= "/${variant}/" . get_var("ARCH") . "/os";
}
return $repourl;
}

View File

@ -21,7 +21,8 @@ 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;
}
@ -77,27 +78,27 @@ 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;
}
unless (script_run "df -h > /tmp/df.log") {
upload_logs "/tmp/df.log", failok=>1;
upload_logs "/tmp/df.log", failok => 1;
}
unless (script_run "free -h > /tmp/free.log") {
upload_logs "/tmp/free.log", failok=>1;
upload_logs "/tmp/free.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;
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
@ -128,7 +129,8 @@ sub root_console {
# 0 means use console_login's default, non-zero values
# passed to console_login
timeout => 0,
@_);
@_
);
if (get_var("SERIAL_CONSOLE")) {
# select first virtio terminal, we rely on anaconda having run
# a root shell on it for us
@ -141,7 +143,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

@ -22,7 +22,7 @@ sub start_cockpit {
# run firefox directly in X as root. never do this, kids!
type_string "startx /usr/bin/firefox -width 1024 -height 768 http://localhost:9090\n";
assert_screen "cockpit_login", 60;
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"; };
@ -56,6 +56,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

@ -171,7 +171,7 @@ sub assert_script_sudo {
my ($self, $prog, $wait) = @_;
script_sudo($prog, $wait);
# Validate that the command exited with a correct exit code.
validate_script_output('echo $?', sub { $_ == 0 } );
validate_script_output('echo $?', sub { $_ == 0 });
return;
}

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

@ -18,7 +18,8 @@ sub root_console {
my %args = (
tty => 1, # what TTY to login to
timeout => 0, # passed through to console_login
@_);
@_
);
if (get_var("SERIAL_CONSOLE")) {
# select the first virtio terminal, for now we assume we can
# always use that (we may have to make this smarter in future)
@ -28,7 +29,7 @@ sub root_console {
# For normal terminal emulation, use key combo to reach a tty
send_key "ctrl-alt-f$args{tty}";
}
console_login(timeout=>$args{timeout}); # Do the login.
console_login(timeout => $args{timeout}); # Do the login.
}
sub post_fail_hook {
@ -44,7 +45,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
@ -89,7 +90,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;
}
@ -126,14 +127,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") {
@ -150,10 +151,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

@ -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

@ -21,9 +21,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);
@ -39,7 +39,7 @@ sub type_safely {
type_string($string, wait_screen_change => 3, max_interval => 20);
# similarity level 38 as there will commonly be a flashing
# cursor and the default level (47) is too tight
wait_still_screen(stilltime=>2, similarity_level=>38);
wait_still_screen(stilltime => 2, similarity_level => 38);
}
# high-level 'type this string extremely safely and rather slow'
@ -49,7 +49,7 @@ sub type_very_safely {
type_string($string, wait_screen_change => 1, max_interval => 1);
# similarity level 38 as there will commonly be a flashing
# cursor and the default level (47) is too tight
wait_still_screen(stilltime=>5, similarity_level=>38);
wait_still_screen(stilltime => 5, similarity_level => 38);
}
sub get_release_number {
@ -59,7 +59,7 @@ 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;
}
# Wait for login screen to appear. Handle the annoying GPU buffer
@ -71,7 +71,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.";
}
}
@ -130,7 +130,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";
}
}
@ -150,7 +150,8 @@ sub console_login {
password => get_var("ROOT_PASSWORD", "weakpassword"),
# default is 10 seconds, set below, 0 means 'default'
timeout => 0,
@_);
@_
);
$args{timeout} ||= 10;
# Since we do not test many serial console tests, and we probably
@ -161,7 +162,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;
@ -175,7 +176,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.";
}
}
@ -382,7 +383,8 @@ sub do_bootloader {
# in SLOF usb-xhci driver failed sometimes in powerpc
type_safely " $args{params}";
}
save_screenshot; # for debug purpose
# for debug purpose
save_screenshot;
# ctrl-X boots from grub editor mode
send_key "ctrl-x";
# return boots all other cases
@ -435,9 +437,9 @@ sub disable_firefox_studies {
assert_script_run 'printf "// required comment\npref(\'general.config.filename\', \'openqa-overrides.cfg\');\npref(\'general.config.obscure_value\', 0);\n" > ' . $prefix . '$(rpm --eval %_libdir)/firefox/browser/defaults/preferences/openqa-overrides.js';
assert_script_run 'printf "// required comment\npref(\'browser.urlbar.quicksuggest.shouldShowOnboardingDialog\', false);\npref(\'privacy.restrict3rdpartystorage.rollout.enabledByDefault\', false);\n" > ' . $prefix . '$(rpm --eval %_libdir)/firefox/openqa-overrides.cfg';
# for debugging
upload_logs "$prefix/usr/lib64/firefox/browser/defaults/preferences/openqa-overrides.js", failok=>1;
upload_logs "$prefix/usr/lib64/firefox/openqa-overrides.cfg", failok=>1;
upload_logs "$prefix/usr/lib64/firefox/distribution/policies.json", failok=>1;
upload_logs "$prefix/usr/lib64/firefox/browser/defaults/preferences/openqa-overrides.js", failok => 1;
upload_logs "$prefix/usr/lib64/firefox/openqa-overrides.cfg", failok => 1;
upload_logs "$prefix/usr/lib64/firefox/distribution/policies.json", failok => 1;
}
sub repos_mirrorlist {
@ -532,9 +534,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 {
@ -545,9 +547,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
@ -734,17 +736,17 @@ 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;
# 'additional software sources' screen did not display on F28-F34:
# https://gitlab.gnome.org/GNOME/gnome-initial-setup/-/issues/59
@nexts = grep {$_ ne 'software'} @nexts if ($relnum < 35);
@nexts = grep { $_ ne 'software' } @nexts if ($relnum < 35);
}
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;
}
# note: in g-i-s 3.37.91 and later, the first screen in systemwide
@ -769,7 +771,7 @@ sub gnome_initial_setup {
}
# 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
@ -799,7 +801,7 @@ sub gnome_initial_setup {
# it's not visible we may have hit
# https://bugzilla.redhat.com/show_bug.cgi?id=1997310 , which
# we'll handle as a soft failure
mouse_set(100,100);
mouse_set(100, 100);
if (check_screen "skip_button", 60) {
wait_screen_change { click_lastmatch; };
}
@ -853,7 +855,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;
@ -934,8 +936,8 @@ 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;
@ -947,8 +949,8 @@ sub download_modularity_tests {
}
sub quit_firefox {
# Quit Firefox, handling the 'close multiple tabs' warning screen if
# it shows up. Expects to quit to a recognizable console
# Quit Firefox, handling the 'close multiple tabs' warning screen if
# it shows up. Expects to quit to a recognizable console
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) {
@ -972,18 +974,18 @@ sub quit_firefox {
record_soft_failure "No console on exit from Firefox, probably RHBZ #2094137";
power "reset";
boot_to_login_screen;
console_login(user=>"root", password=>get_var("ROOT_PASSWORD"));
console_login(user => "root", password => get_var("ROOT_PASSWORD"));
}
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');
@ -1020,7 +1022,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;
@ -1047,7 +1049,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';
@ -1067,12 +1069,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 {
@ -1106,8 +1108,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 | sed -e \'s,\^,\\\\\\\\^,g\' | 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') {
@ -1119,7 +1121,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");
@ -1419,12 +1421,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;
}
@ -1485,14 +1487,14 @@ sub solidify_wallpaper {
# Start the terminal to set up backgrounds.
menu_launch_type "gnome-terminal";
# wait to be sure it's fully open
wait_still_screen(stilltime=>5, similarity_level=>38);
wait_still_screen(stilltime => 5, similarity_level => 38);
# When the application opens, run command in it to set the background to black
type_very_safely "gsettings set org.gnome.desktop.background picture-uri ''";
send_key 'ret';
wait_still_screen(stilltime=>2, similarity_level=>38);
wait_still_screen(stilltime => 2, similarity_level => 38);
type_very_safely "gsettings set org.gnome.desktop.background primary-color '#000000'";
send_key 'ret';
wait_still_screen(stilltime=>2, similarity_level=>38);
wait_still_screen(stilltime => 2, similarity_level => 38);
quit_with_shortcut();
# check that is has changed color
assert_screen 'apps_settings_screen_black';
@ -1546,7 +1548,7 @@ sub download_testdata {
# We agree that this is not the "correct" way, to enable users to type onto serial console
# and that it correctly should be done via groups (dialout) but that would require rebooting
# the virtual machine. Therefore we do it this way, which has immediate effect.
sub make_serial_writable{
sub make_serial_writable {
become_root();
sleep 2;
# Make serial console writable for everyone.

18
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;
@ -192,15 +192,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";
}

7
t/00-tidy.t Executable file
View File

@ -0,0 +1,7 @@
#!/usr/bin/perl
# Copyright 2021 SUSE LLC
# SPDX-License-Identifier: GPL-2.0-or-later
use Test::Strict;
use Test::Code::TidyAll;
tidyall_ok();

View File

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

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

@ -29,7 +29,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."; }
}
@ -133,17 +133,17 @@ sub run {
my $relnum = get_release_number;
my $dclick = 0;
$dclick = 1 if (get_var("DESKTOP") eq "kde");
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"; };
@ -188,13 +188,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

@ -94,16 +94,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")) {
@ -20,7 +20,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, timeout=>30);
$self->root_console(tty => 3, timeout => 30);
# 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;
}
@ -28,16 +28,16 @@ sub run {
# 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

@ -109,20 +109,20 @@ 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, '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"));
# FIXME: remove plymouth from Server install_default_upload on
# non-aarch64 to work around RHBZ #1933378
unless (get_var("ARCH") eq "aarch64") {
if (get_var("FLAVOR") eq "Server-dvd-iso" && get_var("TEST") eq "install_default_upload") {
push (@actions, 'noplymouth');
push(@actions, 'noplymouth');
}
}
# 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
@ -137,14 +137,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
@ -158,22 +158,22 @@ sub run {
# regenerate the bootloader config
assert_script_run "chroot $mount grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg";
}
if (grep {$_ eq 'abrt'} @actions) {
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 'noplymouth'} @actions) {
if (grep { $_ eq 'noplymouth' } @actions) {
assert_script_run "chroot $mount dnf -y remove plymouth";
}
type_string "reboot\n" if (grep {$_ eq 'reboot'} @actions);
type_string "reboot\n" if (grep { $_ eq 'reboot' } @actions);
}
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

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

View File

@ -17,17 +17,17 @@ 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 = 300;
}
# Handle pre-login initial setup if we're doing INSTALL_NO_USER
if (get_var("INSTALL_NO_USER") && !get_var("_setup_done")) {
if (get_var("DESKTOP") eq 'gnome') {
gnome_initial_setup(prelogin=>1, timeout=>$wait_time);
gnome_initial_setup(prelogin => 1, timeout => $wait_time);
}
else {
anaconda_create_user(timeout=>$wait_time);
anaconda_create_user(timeout => $wait_time);
# wait out animation
wait_still_screen 3;
assert_and_click "initialsetup_finish_configuration";
@ -88,7 +88,7 @@ sub run {
# root user now, for subsequent tests to work
if (get_var("IMAGE_DEPLOY")) {
send_key "ctrl-alt-f3";
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"));
type_string "sudo su\n";
type_string "$password\n";
my $root_password = get_var("ROOT_PASSWORD") || "weakpassword";
@ -100,11 +100,11 @@ sub run {
# Move the mouse somewhere it won't highlight the match areas
mouse_set(300, 800);
# KDE can take ages to start up
check_desktop(timeout=>120);
check_desktop(timeout => 120);
}
sub test_flags {
return { fatal => 1, milestone => 1 };
return {fatal => 1, milestone => 1};
}
1;

View File

@ -26,13 +26,13 @@ sub run {
$cmd .= " --repo=/etc/yum.repos.d/advisory.repo --repo=/etc/yum.repos.d/workarounds.repo ./results";
assert_script_run $cmd, 2400;
# good to have the log around for checks
upload_logs "pylorax.log", failok=>1;
upload_logs "pylorax.log", failok => 1;
assert_script_run "mv results/images/boot.iso ./${advortask}-netinst-${arch}.iso";
upload_asset "./${advortask}-netinst-x86_64.iso";
}
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

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

View File

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

View File

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

View File

@ -1,17 +1,17 @@
use base "anacondatest";
use strict;
use testapi;
use strict;
use testapi;
sub run {
sub run {
my $self = shift;
$self->root_console();
upload_logs '/tmp/memory.dat';
}
}
sub test_flags {
return { fatal => 1 };
}
sub test_flags {
return {fatal => 1};
}
1;
1;
# vim: set sw=4 et:
# vim: set sw=4 et:

View File

@ -8,7 +8,7 @@ use utils;
sub run {
my $self = shift;
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# wait for server to be set up
mutex_lock "podman_server_ready";
mutex_unlock "podman_server_ready";
@ -25,7 +25,7 @@ sub run {
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

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

View File

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

View File

@ -5,7 +5,7 @@ use testapi;
sub run {
my $self = shift;
# Anaconda hub
assert_screen "anaconda_main_hub", 300; #
assert_screen "anaconda_main_hub", 300;
# Select package set. Minimal is the default, if 'default' is specified, skip selection,
# but verify correct default in some cases
@ -41,24 +41,24 @@ sub run {
# select desired environment
# go through the list 20 times at max (to prevent infinite loop when it's missing)
for (my $i = 0; !check_screen("anaconda_".$packageset."_highlighted", 1) && $i < 20; $i++) {
for (my $i = 0; !check_screen("anaconda_" . $packageset . "_highlighted", 1) && $i < 20; $i++) {
send_key "down";
}
send_key "spc";
# check that desired environment is selected
assert_screen "anaconda_".$packageset."_selected";
assert_screen "anaconda_" . $packageset . "_selected";
assert_and_click "anaconda_spoke_done";
# Anaconda hub
assert_screen "anaconda_main_hub", 50; #
assert_screen "anaconda_main_hub", 50;
}
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

@ -93,7 +93,7 @@ sub _pxe_setup {
}
sub run {
my $self=shift;
my $self = shift;
# disable systemd-resolved, it conflicts with dnsmasq
unless (script_run "systemctl is-active systemd-resolved.service") {
script_run "systemctl stop systemd-resolved.service";
@ -168,7 +168,7 @@ sub run {
}
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

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

View File

@ -7,7 +7,7 @@ use utils;
sub run {
my $self = shift;
boot_to_login_screen(timeout => 300);
$self->root_console(tty=>3);
$self->root_console(tty => 3);
setup_tap_static('172.16.2.115', 'vnc002.test.openqa.fedoraproject.org');
# test test: check if we can see the server
assert_script_run "ping -c 2 172.16.2.114";
@ -18,7 +18,7 @@ sub run {
}
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

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

View File

@ -7,7 +7,7 @@ use utils;
sub run {
my $self = shift;
boot_to_login_screen(timeout => 300);
$self->root_console(tty=>3);
$self->root_console(tty => 3);
setup_tap_static('172.16.2.117', 'vnc004.test.openqa.fedoraproject.org');
# install tigervnc (Boxes doesn't do reverse VNC)
assert_script_run "dnf -y install tigervnc", 180;
@ -17,7 +17,7 @@ sub run {
}
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

@ -50,7 +50,7 @@ sub run {
# on GNOME installs (Workstation Live and Silverblue) we don't
# need to set a root password or create a user; on other flavors
# we must
unless (get_var("DESKTOP") eq "gnome" ) {
unless (get_var("DESKTOP") eq "gnome") {
assert_and_click "anaconda_install_root_password";
# from anaconda-35.22.1 onwards, we have to click 'enable root
# account' before typing the password. For older versions,

View File

@ -10,7 +10,7 @@ sub run {
my $self = shift;
# At first, we need to set time and time zones manually.
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# Switch off automatic time.
assert_script_run("timedatectl set-ntp 0");
# Set the time zone

View File

@ -9,7 +9,7 @@ use utils;
sub run {
my $self = shift;
# Switch to console
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# Perform git test
check_and_install_git();
# Download the test data

View File

@ -21,7 +21,7 @@ sub run {
wait_still_screen("2");
# Go to console
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# List the location
assert_script_run("ls /home/test/Pictures/");

View File

@ -10,7 +10,7 @@ use utils;
sub run {
my $self = shift;
# Switch to console
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# Perform git test
check_and_install_git();
# Download the test data

View File

@ -6,23 +6,23 @@ use utils;
# This part of the suite tests if About works.
sub run {
my $self = shift;
my $self = shift;
# Open the menu by clicking on the Burger icon
assert_and_click("gnome_burger_menu", button => "left", timeout => 30);
wait_still_screen 2;
# Open the menu by clicking on the Burger icon
assert_and_click("gnome_burger_menu", button => "left", timeout => 30);
wait_still_screen 2;
# In the menu, select the About item.
assert_and_click("evince_menu_about", button => "left", timeout => 30);
# In the menu, select the About item.
assert_and_click("evince_menu_about", button => "left", timeout => 30);
# Check that the About section has been displayed.
assert_screen("evince_about_shown");
# Check that the About section has been displayed.
assert_screen("evince_about_shown");
# Click on Credits button to see the second part of the dialogue.
assert_and_click("evince_about_credits", button => "left", timeout => 30);
# Click on Credits button to see the second part of the dialogue.
assert_and_click("evince_about_credits", button => "left", timeout => 30);
# Check that Credits are accessible and visible, too.
assert_screen("evince_credits_shown");
# Check that Credits are accessible and visible, too.
assert_screen("evince_credits_shown");
}

View File

@ -6,37 +6,37 @@ use utils;
# This part of the suite tests an annotation can be added to the displayed content.
sub run {
my $self = shift;
my $self = shift;
# Click on the Pencil button.
assert_and_click("evince_add_annotation", button => "left", timeout => 30);
# Click on the Pencil button.
assert_and_click("evince_add_annotation", button => "left", timeout => 30);
# Click on Note text.
assert_and_click("evince_add_annotation_text", button => "left", timeout => 30);
# Click on Note text.
assert_and_click("evince_add_annotation_text", button => "left", timeout => 30);
# Select location to add annotation.
assert_and_click("evince_select_annotation_place", button => "left", timeout => 30);
# Select location to add annotation.
assert_and_click("evince_select_annotation_place", button => "left", timeout => 30);
# Enter some text to the annotation.
type_very_safely("Add note");
# Enter some text to the annotation.
type_very_safely("Add note");
# Check that the annotation window has appeared with that text.
assert_screen("evince_annotation_added");
# Check that the annotation window has appeared with that text.
assert_screen("evince_annotation_added");
# Close the annotation.
assert_and_click("evince_close_annotation", button => "left", timeout => 30);
# Close the annotation.
assert_and_click("evince_close_annotation", button => "left", timeout => 30);
# Check that the annotation is still placed in the document.
assert_screen("evince_annotation_placed");
# Check that the annotation is still placed in the document.
assert_screen("evince_annotation_placed");
# Open the annotation's context menu.
assert_and_click("evince_annotation_placed", button => "right", timeout => 30);
# Open the annotation's context menu.
assert_and_click("evince_annotation_placed", button => "right", timeout => 30);
# Remove the annotation.
assert_and_click("evince_remove_annotation", button => "left", timeout => 30);
# Remove the annotation.
assert_and_click("evince_remove_annotation", button => "left", timeout => 30);
# Check that the annotation has been removed.
assert_screen("evince_annotation_removed");
# Check that the annotation has been removed.
assert_screen("evince_annotation_removed");
}

View File

@ -6,17 +6,17 @@ use utils;
# This part of the suite tests that Evince can change the zoom of the document.
sub run {
my $self = shift;
my $self = shift;
# Click on zoom menu to open choices.
assert_and_click("evince_change_zoom", button => "left", timeout => 30);
# Click on zoom menu to open choices.
assert_and_click("evince_change_zoom", button => "left", timeout => 30);
# Select 200%.
assert_and_click("evince_select_zoom_200", button => "left", timeout => 30);
# Select 200%.
assert_and_click("evince_select_zoom_200", button => "left", timeout => 30);
# Check that the document zoom was changed.
assert_screen("evince_document_zoom_200");
# Check that the document zoom was changed.
assert_screen("evince_document_zoom_200");
}

View File

@ -6,28 +6,28 @@ use utils;
# This part of the suite tests that Evince is able to display content in a two-page mode.
sub run {
my $self = shift;
my $self = shift;
# Click on the Zoom menu to change a different zoom for next steps.
assert_and_click("evince_change_zoom", button => "left", timeout => 30);
# Click on the Zoom menu to change a different zoom for next steps.
assert_and_click("evince_change_zoom", button => "left", timeout => 30);
# Select the Fit Width option to be able to see the whole layout.
assert_and_click("evince_select_zoom_fitwidth", button => "left", timeout => 30);
# Select the Fit Width option to be able to see the whole layout.
assert_and_click("evince_select_zoom_fitwidth", button => "left", timeout => 30);
#Dismiss the dialogue
send_key("esc");
#Dismiss the dialogue
send_key("esc");
# Enter the menu
assert_and_click("gnome_burger_menu", button => "left", timeout => 30);
# Enter the menu
assert_and_click("gnome_burger_menu", button => "left", timeout => 30);
# Select the Dual mode
assert_and_click("evince_menu_dual", button => "left", timeout => 30);
# Select the Dual mode
assert_and_click("evince_menu_dual", button => "left", timeout => 30);
# Dismiss the menu
send_key("esc");
# Dismiss the menu
send_key("esc");
# Check that the content is displayed in dual mode.
assert_screen("evince_dual_mode", timeout => 30);
# Check that the content is displayed in dual mode.
assert_screen("evince_dual_mode", timeout => 30);
}
sub test_flags {

View File

@ -6,18 +6,18 @@ use utils;
# This part of the suite tests that Evince can display the Help pages.
sub run {
my $self = shift;
my $self = shift;
# Open menu with Burger icon.
assert_and_click("gnome_burger_menu", button => "left", timeout => 30);
wait_still_screen 2;
# Open menu with Burger icon.
assert_and_click("gnome_burger_menu", button => "left", timeout => 30);
wait_still_screen 2;
# Select the Help item in the menu.
assert_and_click("evince_menu_help", button => "left", timeout => 30);
wait_still_screen 2;
# Select the Help item in the menu.
assert_and_click("evince_menu_help", button => "left", timeout => 30);
wait_still_screen 2;
# Check that Help has been shown.
assert_screen("evince_help_shown", timeout => 30);
# Check that Help has been shown.
assert_screen("evince_help_shown", timeout => 30);
}
sub test_flags {

View File

@ -6,20 +6,20 @@ use utils;
# This part of the suite tests that Evince can be switched into night mode.
sub run {
my $self = shift;
my $self = shift;
# Click on the Menu button.
assert_and_click("gnome_burger_menu", timeout => 30, button => "left");
# Click on the Menu button.
assert_and_click("gnome_burger_menu", timeout => 30, button => "left");
# Click on the Night mode to select it.
assert_and_click("evince_toggle_night_mode", button => "left", timeout => 30);
# Click on the Night mode to select it.
assert_and_click("evince_toggle_night_mode", button => "left", timeout => 30);
# The menu stays opened, so hit Esc to dismiss it.
send_key("esc");
wait_still_screen 2;
# The menu stays opened, so hit Esc to dismiss it.
send_key("esc");
wait_still_screen 2;
# Check that night mode has been activated.
assert_screen("evince_night_mode", timeout => 30);
# Check that night mode has been activated.
assert_screen("evince_night_mode", timeout => 30);
}

View File

@ -6,18 +6,18 @@ use utils;
# This part of the suite tests that Evince can show Document Properties.
sub run {
my $self = shift;
my $self = shift;
# Open the menu.
assert_and_click("gnome_burger_menu", button => "left", timeout => 30);
wait_still_screen 2;
# Open the menu.
assert_and_click("gnome_burger_menu", button => "left", timeout => 30);
wait_still_screen 2;
# Select the Properties item.
assert_and_click("evince_menu_properties", button => "left", timeout => 30);
wait_still_screen 2;
# Select the Properties item.
assert_and_click("evince_menu_properties", button => "left", timeout => 30);
wait_still_screen 2;
# Check that Properties are shown.
assert_screen("evince_properties_shown", timeout => 30);
# Check that Properties are shown.
assert_screen("evince_properties_shown", timeout => 30);
}
sub test_flags {

View File

@ -7,24 +7,24 @@ use utils;
sub rotate_content {
# Send the key combo to rotate the content
send_key("ctrl-right");
# Send the key combo to rotate the content
send_key("ctrl-right");
}
sub run {
my $self = shift;
my $self = shift;
# Rotate the content once.
rotate_content();
# Rotate the content once.
rotate_content();
# Check that the window content has been rotated.
assert_screen("evince_content_rotated_once", timeout => 30);
# Check that the window content has been rotated.
assert_screen("evince_content_rotated_once", timeout => 30);
# Rotate the content again.
rotate_content();
# Rotate the content again.
rotate_content();
# Check that the window content has been rotated.
assert_screen("evince_content_rotated_twice", timeout => 30);
# Check that the window content has been rotated.
assert_screen("evince_content_rotated_twice", timeout => 30);
}
sub test_flags {

View File

@ -6,32 +6,32 @@ use utils;
# This part of the suite tests tests that Evince can Save the document As another document.
sub run {
my $self = shift;
my $self = shift;
# Open the menu.
assert_and_click("gnome_burger_menu", button => "left", timeout => 30);
# Open the menu.
assert_and_click("gnome_burger_menu", button => "left", timeout => 30);
# Select Save As
assert_and_click("evince_menu_saveas", button => "left", timeout => 30);
# Select Save As
assert_and_click("evince_menu_saveas", button => "left", timeout => 30);
# Type a new name.
type_very_safely("alternative");
# Type a new name.
type_very_safely("alternative");
# Click on the Save button
assert_and_click("gnome_button_save_blue", button => "left", timeout => 30);
# Click on the Save button
assert_and_click("gnome_button_save_blue", button => "left", timeout => 30);
# Now the document is saved under a different name. We will switch to the
# terminal console to check that it has been created.
$self->root_console(tty=>3);
my $filename = "alternative.pdf";
if (script_run("ls /home/test/Documents/${filename}")) {
# Now the document is saved under a different name. We will switch to the
# terminal console to check that it has been created.
$self->root_console(tty => 3);
my $filename = "alternative.pdf";
if (script_run("ls /home/test/Documents/${filename}")) {
$filename = "alternativeevince.pdf";
assert_script_run("ls /home/test/Documents/${filename}");
record_soft_failure("File name was not pre-selected in Save As dialog: https://gitlab.gnome.org/GNOME/gtk/-/issues/4768");
}
}
# Now, check that the new file does not differ from the original one.
assert_script_run("diff /home/test/Documents/evince.pdf /home/test/Documents/${filename}");
# Now, check that the new file does not differ from the original one.
assert_script_run("diff /home/test/Documents/evince.pdf /home/test/Documents/${filename}");
}
sub test_flags {

View File

@ -6,18 +6,18 @@ use utils;
# This part of the suite tests the ability to search string in the text.
sub run {
my $self = shift;
my $self = shift;
# Click on the Search button to search for text
assert_and_click("evince_search_button", button => "left", timeout => 30);
# Click on the Search button to search for text
assert_and_click("evince_search_button", button => "left", timeout => 30);
# Type *pages*.
type_very_safely("pages");
# Press Enter.
send_key("ret");
# Type *pages*.
type_very_safely("pages");
# Press Enter.
send_key("ret");
# Check that the typed text has been found.
assert_screen("evince_search_found", timeout => 30);
# Check that the typed text has been found.
assert_screen("evince_search_found", timeout => 30);
}

View File

@ -6,30 +6,30 @@ use utils;
# This part of the suite tests that Evince displays shortcuts.
sub run {
my $self = shift;
my $self = shift;
# Open the menu
assert_and_click("gnome_burger_menu", button => "left", timeout => 30);
wait_still_screen 2;
# Open the menu
assert_and_click("gnome_burger_menu", button => "left", timeout => 30);
wait_still_screen 2;
# Select the Keyboard Shortcuts item
assert_and_click("evince_menu_shortcuts", button => "left", timeout => 30);
wait_still_screen 2;
# Select the Keyboard Shortcuts item
assert_and_click("evince_menu_shortcuts", button => "left", timeout => 30);
wait_still_screen 2;
# Check that Shortcuts has been shown
assert_screen("evince_shortcuts_shown");
# Check that Shortcuts has been shown
assert_screen("evince_shortcuts_shown");
# Click on number 2 to arrive to the second page
assert_and_click("evince_shortcuts_second", button => "left", timeout => 30);
# Click on number 2 to arrive to the second page
assert_and_click("evince_shortcuts_second", button => "left", timeout => 30);
# Check that Shortcuts 2 has been shown
assert_screen("evince_shortcuts_second_shown");
# Check that Shortcuts 2 has been shown
assert_screen("evince_shortcuts_second_shown");
# Click on number 3 to arrive to the second page
assert_and_click("evince_shortcuts_third", button => "left", timeout => 30);
# Click on number 3 to arrive to the second page
assert_and_click("evince_shortcuts_third", button => "left", timeout => 30);
# Check that Shortcuts 3 has been shown
assert_screen("evince_shortcuts_third_shown");
# Check that Shortcuts 3 has been shown
assert_screen("evince_shortcuts_third_shown");
}
sub test_flags {

View File

@ -9,7 +9,7 @@ sub run {
my $self = shift;
# Go to the root console to set up the test data and necessary stuff.
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# Get the test data from the test data repository.
check_and_install_git();
@ -47,7 +47,7 @@ sub run {
}
sub test_flags {
return { fatal => 1, milestone => 1 };
return {fatal => 1, milestone => 1};
}
1;

View File

@ -27,7 +27,7 @@ sub run {
}
sub test_flags {
return { always_rollback => 1 };
return {always_rollback => 1};
}
1;

View File

@ -9,7 +9,7 @@ use utils;
sub run {
my $self = shift;
# Click on a word on the line.
assert_and_click("gte_line_word", clicktime=>0.3);
assert_and_click("gte_line_word", clicktime => 0.3);
wait_still_screen(2);
# Delete the line
send_key("home");
@ -33,7 +33,7 @@ sub run {
}
sub test_flags {
return { always_rollback => 1 };
return {always_rollback => 1};
}
1;

View File

@ -59,7 +59,7 @@ sub run {
}
sub test_flags {
return { always_rollback => 1 };
return {always_rollback => 1};
}
1;

View File

@ -47,7 +47,7 @@ sub run {
sub test_flags {
return { always_rollback => 1 };
return {always_rollback => 1};
}
1;

View File

@ -37,14 +37,14 @@ sub run {
type_very_safely "list.md";
send_key("ret");
# Check that the file has been created
$self->root_console(tty=>3);
$self->root_console(tty => 3);
assert_script_run "ls /home/test/list.md";
desktop_vt();
}
sub test_flags {
return { milestone => 1 };
return {milestone => 1};
}
1;

View File

@ -24,7 +24,7 @@ sub run {
sub test_flags {
return { always_rollback => 1 };
return {always_rollback => 1};
}
1;

View File

@ -23,7 +23,7 @@ sub run {
sub test_flags {
return { always_rollback => 1 };
return {always_rollback => 1};
}
1;

View File

@ -66,7 +66,7 @@ sub run {
sub test_flags {
return { always_rollback => 1 };
return {always_rollback => 1};
}
1;

View File

@ -9,7 +9,7 @@ use utils;
# is listed and returns to the main page.
sub visit_section {
my $section = shift;
send_key_until_needlematch("help_section_$section", "down", 40, 1 );
send_key_until_needlematch("help_section_$section", "down", 40, 1);
click_lastmatch();
assert_screen("help_section_content_$section");
assert_and_click("help_breadcrumbs_home");

View File

@ -10,7 +10,7 @@ use utils;
sub run {
my $self = shift;
# Switch to console
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# Perform git test
check_and_install_git();
# Download the test data

View File

@ -32,7 +32,7 @@ sub run {
assert_screen("nautilus_test_file");
# Go into the root console and verify the operation in the background.
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# Verify that the new file exists in original location.
assert_script_run("ls /home/test/Documents/markdown.md", timeout => '60', fail_message => 'The test file was incorrectly removed from the old location.', quiet => '0');

View File

@ -6,7 +6,7 @@ use utils;
# Create a new directory.
sub run {
my $self = shift;
my $self = shift;
# Enter the Documents directory to get to the test data.
assert_and_click("nautilus_directory_documents");
@ -28,7 +28,7 @@ my $self = shift;
assert_screen("nautilus_new_directory_check");
# Go into the root console and verify the operation in the background.
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# Check that the directory can be listed.
assert_script_run("ls /home/test/Documents/new_directory", fail_message => "The expected directory does not exist.");

View File

@ -57,7 +57,7 @@ sub run {
assert_screen("nautilus_test_file");
# Go into the root console and verify the operation in the background.
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# Verify that the first file still exists in the location as it was restored from the bin.
assert_script_run("ls /home/test/Documents/markdown.md", timeout => '60', fail_message => 'The file has not been found in the location.', quiet => '0');

View File

@ -32,7 +32,7 @@ sub run {
assert_screen("nautilus_test_file");
# Go into the root console and verify the operation in the background.
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# Verify that the new file does not exist in the original location.
assert_script_run("! ls /home/test/Documents/markdown.md", fail_message => 'The test file still exists in the original location, but it should have been removed.');

View File

@ -42,7 +42,7 @@ sub run {
assert_and_click("gnome_select_button");
# Go into the root console and verify the operation in the background.
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# Verify that the new file does not exist in the original location.
assert_script_run("! ls /home/test/Documents/markdown.md", fail_message => 'The test file has not been deleted from its original location.');

View File

@ -52,7 +52,7 @@ sub run {
send_key("esc");
# Go into the root console and verify the operation in the background.
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# Check that the permissions have been changed.
validate_script_output("ls -l /home/test/Documents/markdown.md", sub { m/-rw-r-----/ });

View File

@ -28,7 +28,7 @@ sub run {
assert_screen("nautilus_rename_check");
# Go into the root console and verify the operation in the background.
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# Verify that the new file exists in the location.
assert_script_run("ls /home/test/Documents/renamed.md", timeout => '60', fail_message => 'The renamed file has not been found in the location.', quiet => '0');

View File

@ -16,7 +16,7 @@ sub run {
# so there is no need to continue.
# Also, when subsequent tests fail, the suite will revert to this state for further testing.
sub test_flags {
return { fatal => 1, milestone => 1 };
return {fatal => 1, milestone => 1};
}
1;

View File

@ -22,7 +22,7 @@ sub run {
# so there is no need to continue.
# Also, when subsequent tests fail, the suite will revert to this state for further testing.
sub test_flags {
return { fatal => 1, milestone => 1 };
return {fatal => 1, milestone => 1};
}
1;

View File

@ -14,7 +14,7 @@ sub run {
# Firewall requires password to be entered and confirmed to start.
# View password
assert_screen "auth_required";
my $password = get_var('ROOT_PASSWORD','weakpassword');
my $password = get_var('ROOT_PASSWORD', 'weakpassword');
type_very_safely $password;
send_key 'ret';
sleep 5;

View File

@ -23,7 +23,7 @@ sub run {
assert_script_run "chmod ugo+w /dev/" . $serialdev;
# let's go to another tty and login as regular user
send_key "alt-f2";
console_login(user=>"test", password=>"weakpassword");
console_login(user => "test", password => "weakpassword");
assert_script_run "curl -O https://fedorapeople.org/groups/qa/tunirtests.tar.gz";
assert_script_run "tar xvf tunirtests.tar.gz";
assert_script_run "sudo python3 -m unittest tunirtests.atomictests.TestAtomic01Status -v";
@ -45,24 +45,24 @@ sub run {
assert_script_run "sudo python3 -m unittest tunirtests.cloudservice.TestServiceDisable -v";
type_string "sudo reboot\n";
boot_to_login_screen(timeout => 180);
console_login(user=>"root", password=>"weakpassword");
console_login(user => "root", password => "weakpassword");
# we need to use script_run as regular user again
assert_script_run "sudo chmod ugo+w /dev/" . $serialdev;
# let's go to another tty and login as regular user again
send_key "alt-f2";
console_login(user=>"test", password=>"weakpassword");
console_login(user => "test", password => "weakpassword");
_soft_fail_run "tunirtests.testreboot.TestReboot";
assert_script_run "sudo python3 -m unittest tunirtests.cloudservice.TestServiceManipulation -v";
# this test only works properly as a regular user
_soft_fail_run "tunirtests.cloudtests.TestJournalWrittenAfterReboot", 0;
type_string "sudo reboot\n";
boot_to_login_screen(timeout => 180);
console_login(user=>"root", password=>"weakpassword");
console_login(user => "root", password => "weakpassword");
# we need to use script_run as regular user again
assert_script_run "sudo chmod ugo+w /dev/" . $serialdev;
# let's go to another tty and login as regular user again
send_key "alt-f2";
console_login(user=>"test", password=>"weakpassword");
console_login(user => "test", password => "weakpassword");
assert_script_run "sudo python3 -m unittest tunirtests.cloudservice.TestServiceAfter -v";
assert_script_run "sudo python3 -m unittest tunirtests.atomictests.TestDockerInstalled -v";
assert_script_run "sudo python3 -m unittest tunirtests.atomictests.TestDockerStorageSetup -v";
@ -76,7 +76,7 @@ sub run {
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

@ -6,7 +6,7 @@ use utils;
sub run {
my $self = shift;
# switch to TTY3 for both, graphical and console tests
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# This test case tests that packages can be correctly installed and removed.
# We will test by installing two packages - ftp and mc.
@ -49,7 +49,7 @@ sub run {
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

@ -19,21 +19,21 @@ sub test_routine {
sub run {
my $self = shift;
# switch to TTY3 for both graphical and console tests
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# Run test for the first time
test_routine();
# Reboot the system.
type_safely "reboot\n";
# This time, we will need to login manually.
boot_to_login_screen;
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# Run the tests for the second time.
test_routine();
}
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

@ -4,15 +4,15 @@ use testapi;
use utils;
sub run {
my $self=shift;
my $self = shift;
# switch to TTY3 for both, graphical and console tests
$self->root_console(tty=>3);
$self->root_console(tty => 3);
validate_script_output 'getenforce', sub { $_ =~ m/Enforcing/ };
}
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

@ -6,7 +6,7 @@ use utils;
sub run {
my $self = shift;
# switch to TTY3 for both, graphical and console tests
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# we could make this slightly more 'efficient' by assuming chronyd
# is always going to be enabled/running at first, but it's safer
# to force an expected starting state.
@ -14,7 +14,7 @@ sub run {
script_run "systemctl disable chronyd.service";
script_run "reboot", 0;
boot_to_login_screen;
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# note the use of ! here is a bash-ism, but it sure makes life easier
assert_script_run '! systemctl is-enabled chronyd.service';
assert_script_run '! systemctl is-active chronyd.service';
@ -33,14 +33,14 @@ sub run {
assert_script_run '! ps -C chronyd';
script_run "reboot", 0;
boot_to_login_screen;
$self->root_console(tty=>3);
$self->root_console(tty => 3);
assert_script_run 'systemctl is-enabled chronyd.service';
assert_script_run 'systemctl is-active chronyd.service';
assert_script_run 'ps -C chronyd';
script_run "systemctl disable chronyd.service";
script_run "reboot", 0;
boot_to_login_screen;
$self->root_console(tty=>3);
$self->root_console(tty => 3);
assert_script_run '! systemctl is-enabled chronyd.service';
assert_script_run '! systemctl is-active chronyd.service';
assert_script_run '! ps -C chronyd';
@ -48,7 +48,7 @@ sub run {
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

@ -5,7 +5,7 @@ use testapi;
sub run {
my $self = shift;
# switch to TTY3 for both, graphical and console tests
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# "Job foo.service/start deleted to break ordering cycle"-type
# message in the log indicates a service got taken out of the boot
# process to resolve some kind of dependency loop, see e.g.
@ -42,7 +42,7 @@ sub run {
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

@ -3,9 +3,9 @@ use strict;
use testapi;
sub run {
my $self=shift;
my $self = shift;
# switch to TTY3 for both, graphical and console tests
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# Check that journalctl DOESN'T output "No entries". This is also the case when journal files are missing.
# NOTE: We are quietly assuming that something was logged in journal in last 30 minutes. Should be boot log,
# switch to TTY3 etc.
@ -16,7 +16,7 @@ sub run {
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

@ -6,7 +6,7 @@ use packagetest;
sub run {
my $self = shift;
# switch to TTY3 for both, graphical and console tests
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# enable test repos and install test packages
prepare_test_packages;
# check rpm agrees they installed good
@ -24,7 +24,7 @@ sub run {
}
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

@ -4,9 +4,9 @@ use testapi;
use utils;
sub run {
my $self=shift;
my $self = shift;
# switch to TTY3 for both, graphical and console tests
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# The pre-created image has a special file left in the home
# directory. This checks that the file has been left there
# correctly after system reinstall.
@ -15,7 +15,7 @@ sub run {
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

@ -23,7 +23,7 @@ sub run {
menu_launch_type("terminal");
}
assert_screen("apps_run_terminal");
wait_still_screen(stilltime=>5, similarity_level=>42);
wait_still_screen(stilltime => 5, similarity_level => 42);
# Run the test commands and record their output in the test file.
enter_cmd("fc-match sans > test.txt");
@ -42,7 +42,7 @@ sub run {
# If the language is among supported languages
if ($language ~~ @supported) {
# Go to root console for script assertions.
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# Load us keys to be used on console
script_run("loadkeys us");
# Navigate to the home directory.
@ -51,7 +51,7 @@ sub run {
# Download the language reference file.
script_run("wget https://fedorapeople.org/groups/qa/openqa-fonts/$language-reference.txt");
# upload the log for debugging.
upload_logs "test.txt", failok=>1;
upload_logs "test.txt", failok => 1;
# Compare the test file and the reference file.
assert_script_run("diff -u test.txt $language-reference.txt");
}

View File

@ -6,7 +6,7 @@ use tapnet;
use utils;
sub run {
my $self=shift;
my $self = shift;
# use compose repo, disable u-t, etc.
repo_setup();
# install postgresql
@ -19,7 +19,7 @@ sub run {
}
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

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

View File

@ -29,55 +29,55 @@ sub run {
my $self = shift;
check_desktop;
# switch to a VT and disable things that can mess with the test
$self->root_console(tty=>3);
$self->root_console(tty => 3);
disable_firefox_studies;
desktop_vt;
send_key 'super';
# wait out animations
wait_still_screen(stilltime=>4, similarity_level=>45);
wait_still_screen(stilltime => 4, similarity_level => 45);
assert_and_click 'browser_launcher';
assert_screen 'browser', 45;
# firefox is quite grindy on startup, let it settle
wait_still_screen(stilltime=>5, similarity_level=>45);
wait_still_screen(stilltime => 5, similarity_level => 45);
# open a new tab so we don't race with the default page load
# (also focuses the location bar for us)
_open_new_tab;
wait_still_screen(stilltime=>5, similarity_level=>45);
wait_still_screen(stilltime => 5, similarity_level => 45);
sleep 3;
# check FAS, typing slowly to avoid errors
type_very_safely "https://accounts.fedoraproject.org/\n";
assert_screen 'browser_fas_home';
_open_new_tab;
wait_still_screen(stilltime=>2, similarity_level=>45);
wait_still_screen(stilltime => 2, similarity_level => 45);
sleep 2;
type_very_safely "https://kernel.org\n";
assert_and_click "browser_kernelorg_patch";
wait_still_screen(stilltime=>2, similarity_level=>45);
wait_still_screen(stilltime => 2, similarity_level => 45);
# browsers do...something...when the download completes, and we
# expect there's a single click to make it go away and return
# browser to a state where we can open a new tab
assert_and_click "browser_download_complete";
wait_still_screen(stilltime=>2, similarity_level=>45);
wait_still_screen(stilltime => 2, similarity_level => 45);
# we'll check it actually downloaded later
# add-on test: at present all desktops we test (KDE, GNOME) are
# using Firefox by default so we do this unconditionally, but we
# may need to conditionalize it if we ever test desktops whose
# default browser doesn't support add-ons or uses different ones
_open_new_tab;
wait_still_screen(stilltime=>2, similarity_level=>45);
wait_still_screen(stilltime => 2, similarity_level => 45);
sleep 2;
type_very_safely "https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/\n";
assert_and_click "firefox_addon_add";
assert_and_click "firefox_addon_install";
assert_and_click "firefox_addon_success";
# go to a console and check download worked
$self->root_console(tty=>3);
$self->root_console(tty => 3);
my $user = get_var("USER_LOGIN", "test");
assert_script_run "test -e /home/$user/Downloads/patch-*.xz";
}
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

@ -8,7 +8,7 @@ sub run {
# "Login without a (fingerprint) reader"
my $self = shift;
my $user = get_var("USER_LOGIN", "test");
$self->root_console(tty=>6);
$self->root_console(tty => 6);
script_run 'dnf -y install socat', 180;
assert_script_run 'mkdir -p /etc/systemd/system/fprintd.service.d';
# configure fprintd dummy reader, see
@ -24,22 +24,22 @@ sub run {
send_key_until_needlematch("graphical_login_input", "ret", 3, 5);
type_very_safely "weakpassword";
send_key "ret";
check_desktop(timeout=>60);
check_desktop(timeout => 60);
wait_still_screen 10;
$self->root_console(tty=>5);
$self->root_console(tty => 5);
# now we enroll a fingerprint, we run the enrol process on tty5...
type_string "fprintd-enroll $user\n";
sleep 2;
$self->root_console(tty=>6);
$self->root_console(tty => 6);
# ...and do the scans (we need exactly 5) on tty4.
for my $n (1..5) {
for my $n (1 .. 5) {
assert_script_run "echo SCAN $user-finger-1 | socat STDIN UNIX-CONNECT:/run/fprintd-virt";
}
# now we will reboot and do step 3:
# "Login using fingerprint"
type_string "reboot\n";
assert_screen "graphical_login", 180;
$self->root_console(tty=>6);
$self->root_console(tty => 6);
# the GDM tty needs to be active when the scan happens, so we will
# schedule the scan to happen in 20 seconds then go deal with gdm
type_string "sleep 20; echo SCAN $user-finger-1 | socat STDIN UNIX-CONNECT:/run/fprintd-virt\n";
@ -49,13 +49,13 @@ sub run {
# now we check that we see the "or scan fingerprint" message, then
# just wait for the scan to happen and login to succeed
assert_screen "graphical_login_fprint";
check_desktop(timeout=>60);
$self->root_console(tty=>6);
check_desktop(timeout => 60);
$self->root_console(tty => 6);
# now we will reboot again and do step 4:
# "Password login after failed fingerprint login"
type_string "reboot\n";
assert_screen "graphical_login", 180;
$self->root_console(tty=>6);
$self->root_console(tty => 6);
# we're doing the same as before, but scanning the 'wrong thing'
# (note finger-2 not finger-1)
type_string "sleep 20; echo SCAN $user-finger-2 | socat STDIN UNIX-CONNECT:/run/fprintd-virt\n";
@ -71,11 +71,11 @@ sub run {
assert_screen "graphical_login_input";
type_very_safely "weakpassword";
send_key "ret";
check_desktop(timeout=>60);
check_desktop(timeout => 60);
}
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

@ -66,12 +66,12 @@ sub login_user {
# but rather a "screensaver" screen for the DM. If this is the
# case, hit Escape to bring back the user list.
send_key "esc";
wait_still_screen(stilltime=>5, similarity_level=>45);
wait_still_screen(stilltime => 5, similarity_level => 45);
}
if ($method ne "unlock") {
# When we do not just want to unlock the screen, we need to select a user.
assert_and_click "login_$user";
wait_still_screen(stilltime=>5, similarity_level=>45);
wait_still_screen(stilltime => 5, similarity_level => 45);
}
if ($method eq "create") {
# With users that do not have passwords, we need to make an extra round
@ -79,8 +79,8 @@ sub login_user {
type_very_safely "$password\n";
}
type_very_safely "$password\n";
check_desktop(timeout=>60) if ($args{checklogin});
wait_still_screen(stilltime=>5, similarity_level=>45);
check_desktop(timeout => 60) if ($args{checklogin});
wait_still_screen(stilltime => 5, similarity_level => 45);
}
sub check_user_logged_in {
@ -176,7 +176,7 @@ sub run {
our $desktop = get_var("DESKTOP");
# replace the wallpaper with a black image, this should work for
# all desktops. Takes effect after a logout / login cycle
$self->root_console(tty=>3);
$self->root_console(tty => 3);
assert_script_run "dnf -y install GraphicsMagick", 300;
assert_script_run "gm convert -size 1024x768 xc:black /usr/share/backgrounds/black.png";
assert_script_run 'for i in /usr/share/backgrounds/f*/default/*.png; do ln -sf /usr/share/backgrounds/black.png $i; done';
@ -184,7 +184,7 @@ sub run {
# use solid blue background for SDDM
assert_script_run "sed -i -e 's,image,solid,g' /usr/share/sddm/themes/01-breeze-fedora/theme.conf.user";
}
adduser(name=>"Jack Sparrow", login=>"jack", password=>$jackpass);
adduser(name => "Jack Sparrow", login => "jack", password => $jackpass);
if ($desktop eq "gnome") {
# suppress the Welcome Tour for new users in GNOME 40+
assert_script_run 'printf "[org.gnome.shell]\nwelcome-dialog-last-shown-version=\'4294967295\'\n" > /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override';
@ -195,12 +195,12 @@ sub run {
# In Gnome, we can create a passwordless user that can provide his password upon
# the first login. So we can create the second user in this way to test this feature
# later.
adduser(name=>"Jim Eagle", login=>"jim", password=>"askuser");
adduser(name => "Jim Eagle", login => "jim", password => "askuser");
}
else {
# In KDE, we can also create a passwordless user, but we cannot log into the system
# later, so we will create the second user the standard way.
adduser(name=>"Jim Eagle", login=>"jim", password=>$jimpass);
adduser(name => "Jim Eagle", login => "jim", password => $jimpass);
}
# Clean boot the system, and note what accounts are listed on the login screen.
@ -210,7 +210,7 @@ sub run {
boot_to_login_screen;
# Log in with the first user account.
login_user(user=>"jack", password=>$jackpass);
login_user(user => "jack", password => $jackpass);
check_user_logged_in("jack");
# Log out the user.
logout_user();
@ -218,31 +218,31 @@ sub run {
# Log in with the second user account. The second account, Jim Eagle,
if ($desktop eq "gnome") {
# If we are in Gnome, we will this time assign a password on first log-in.
login_user(user=>"jim", password=>$jimpass, method=>"create");
login_user(user => "jim", password => $jimpass, method => "create");
}
else {
# If not, we are in KDE and we will log in normally.
login_user(user=>"jim", password=>$jimpass);
login_user(user => "jim", password => $jimpass);
}
check_user_logged_in("jim");
# And this time reboot the system using the menu.
reboot_system();
# Try to log in with either account, intentionally entering the wrong password.
login_user(user=>"jack", password=>"wrongpassword", checklogin=>0);
login_user(user => "jack", password => "wrongpassword", checklogin => 0);
# get back to the login screen if necessary (dismiss an error message)
send_key 'esc' unless (check_screen "login_jim");
# Now, log into the system again using the correct password. This will
# only work if we were correctly denied login with the wrong password,
# if we were let in with the wrong password it'll fail
login_user(user=>"jim", password=>$jimpass);
login_user(user => "jim", password => $jimpass);
check_user_logged_in("jim");
# Lock the screen and unlock again.
lock_screen();
# Use the password to unlock the screen.
login_user(user=>"jim", password=>$jimpass, method=>"unlock");
login_user(user => "jim", password => $jimpass, method => "unlock");
# Switch user tests
if ($desktop eq "gnome") {
@ -257,7 +257,7 @@ sub run {
# Initiate switch user
switch_user();
# Now, we get a new login screen, so let's do the login into the new session.
login_user(user=>"jack", password=>$jackpass);
login_user(user => "jack", password => $jackpass);
# Check that it is a new session, the terminal window should not be visible.
if (check_screen "user_confirm_jim") {
die "The session was not switched!";
@ -269,7 +269,7 @@ sub run {
logout_user();
# Now, let us log into the original session, this time, the terminal window
# should still be visible.
login_user(user=>"jim", password=>$jimpass);
login_user(user => "jim", password => $jimpass);
assert_screen "user_confirm_jim";
# We will also test another alternative - switching the user from
@ -277,7 +277,7 @@ sub run {
lock_screen();
send_key "ret";
switch_user();
login_user(user=>"jack", password=>$jackpass);
login_user(user => "jack", password => $jackpass);
check_user_logged_in("jack");
}
# Power off the machine
@ -285,7 +285,7 @@ sub run {
}
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

@ -15,14 +15,14 @@ sub run {
my $desktop = get_var("DESKTOP");
# for the live image case, handle bootloader here
if (get_var("BOOTFROM")) {
do_bootloader(postinstall=>1, params=>'3');
do_bootloader(postinstall => 1, params => '3');
}
else {
do_bootloader(postinstall=>0, params=>'3');
do_bootloader(postinstall => 0, params => '3');
}
boot_to_login_screen;
# use tty1 to avoid RHBZ #1821499 on F32 Workstation live
$self->root_console(tty=>1);
$self->root_console(tty => 1);
# ensure we actually have some package updates available
prepare_test_packages;
if ($desktop eq 'gnome') {
@ -41,11 +41,11 @@ sub run {
# get notifications, see:
# https://wiki.gnome.org/Design/Apps/Software/Updates#Tentative_Design
my $now = script_output 'date +%s';
my $yyday = $now - 2*24*60*60;
my $longago = $now - 14*24*60*60;
my $yyday = $now - 2 * 24 * 60 * 60;
my $longago = $now - 14 * 24 * 60 * 60;
# have to log in as the user to do this
script_run 'exit', 0;
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'));
script_run "gsettings set org.gnome.software check-timestamp ${yyday}", 0;
script_run "gsettings set org.gnome.software update-notification-timestamp ${longago}", 0;
script_run "gsettings set org.gnome.software online-updates-timestamp ${longago}", 0;
@ -53,7 +53,7 @@ sub run {
script_run "gsettings set org.gnome.software install-timestamp ${longago}", 0;
wait_still_screen 5;
script_run 'exit', 0;
console_login(user=>'root', password=>get_var('ROOT_PASSWORD', 'weakpassword'));
console_login(user => 'root', password => get_var('ROOT_PASSWORD', 'weakpassword'));
}
}
# can't use assert_script_run here as long as we're on tty1
@ -74,11 +74,11 @@ sub run {
type_very_safely get_var("USER_PASSWORD", "weakpassword");
send_key 'ret';
}
check_desktop(timeout=>90);
check_desktop(timeout => 90);
# now, WE WAIT. this is just an unconditional wait - rather than
# breaking if we see an update notification appear - so we catch
# things that crash a few minutes after startup, etc.
for my $n (1..16) {
for my $n (1 .. 16) {
sleep 30;
mouse_set 10, 10;
send_key "spc";
@ -131,7 +131,7 @@ sub run {
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

@ -9,7 +9,7 @@ sub run {
# Prepare the environment for the test.
#
# Some actions need a root account, so become root.
$self->root_console(tty=>3);
$self->root_console(tty => 3);
# Create a text file, put content to it to prepare it for later printing.
script_run "cd /home/test/";
@ -62,13 +62,13 @@ sub run {
# Open the text editor and maximize it.
wait_screen_change { type_very_safely "$editor /home/test/testfile.txt &\n"; };
wait_still_screen(stilltime=>2, similarity_level=>45);
wait_still_screen(stilltime => 2, similarity_level => 45);
wait_screen_change { send_key($maximize); };
wait_still_screen(stilltime=>2, similarity_level=>45);
wait_still_screen(stilltime => 2, similarity_level => 45);
# Print the file using one of the available methods
send_key "ctrl-p";
wait_still_screen(stilltime=>3, similarity_level=>45);
wait_still_screen(stilltime => 3, similarity_level => 45);
# We will select the printing method
# In case of KDE, we will need to select the printer first.
if ($desktop eq "kde") {
@ -94,7 +94,7 @@ sub run {
# on the selected method. We do this on a VT because there's
# no argument to script_output to make it type slowly, and
# it often fails typing fast in a desktop terminal
$self->root_console(tty=>3);
$self->root_console(tty => 3);
my $directory = $usecups ? "/home/test/Desktop" : "/home/test/Documents";
my $filename = script_output("ls $directory");
my $filepath = "$directory/$filename";
@ -104,17 +104,17 @@ sub run {
# back to the desktop
desktop_vt();
wait_still_screen(stilltime=>3, similarity_level=>45);
wait_still_screen(stilltime => 3, similarity_level => 45);
# The CLI might be blocked by some application output. Pressing the
# Enter key will dismiss them and return the CLI to the ready status.
send_key("ret");
# Open the pdf file in a Document reader and check that it is correctly printed.
type_safely("$viewer $filepath &\n");
wait_still_screen(stilltime=>3, similarity_level=>45);
wait_still_screen(stilltime => 3, similarity_level => 45);
# Resize the window, so that the size of the document fits the bigger space
# and gets more readable.
send_key $maximize;
wait_still_screen(stilltime=>2, similarity_level=>45);
wait_still_screen(stilltime => 2, similarity_level => 45);
# in KDE, make sure we're at the start of the document
send_key "ctrl-home" if ($desktop eq "kde");
# Check the printed pdf.
@ -123,7 +123,7 @@ sub run {
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

@ -9,15 +9,15 @@ sub run {
check_desktop;
menu_launch_type('terminal');
assert_screen "apps_run_terminal";
wait_still_screen(stilltime=>5, similarity_level=>42);
wait_still_screen(stilltime => 5, similarity_level => 42);
# need to be root
my $rootpass = get_var("ROOT_PASSWORD", "weakpassword");
type_string "su\n", 20;
wait_still_screen(stilltime=>3, similarity_level=>42);
wait_still_screen(stilltime => 3, similarity_level => 42);
# can't use type_safely for now as current implementation relies
# on screen change checks, and there is no screen change here
type_string "$rootpass\n", 1;
wait_still_screen(stilltime=>3, similarity_level=>42);
wait_still_screen(stilltime => 3, similarity_level => 42);
# if we can run something successfully, we're at a console;
# we're reinventing assert_script_run instead of using it so
# we can type safely
@ -26,7 +26,7 @@ sub run {
}
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

View File

@ -9,7 +9,7 @@ sub run {
my $desktop = get_var('DESKTOP');
my $relnum = get_release_number;
# use a tty console for repo config and package prep
$self->root_console(tty=>3);
$self->root_console(tty => 3);
assert_script_run 'dnf config-manager --set-disabled updates-testing';
prepare_test_packages;
# get back to the desktop
@ -38,7 +38,7 @@ sub run {
}
# go to the 'update' interface. We may be waiting some time at a
# 'Software catalog is being loaded' screen.
for my $n (1..5) {
for my $n (1 .. 5) {
last if (check_screen 'desktop_package_tool_update', 120);
mouse_set 10, 10;
mouse_hide;
@ -47,14 +47,14 @@ sub run {
# wait for things to settle if e.g. GNOME is refreshing
wait_still_screen 5, 90;
# we always want to refresh to make sure we get the prepared update
assert_and_click 'desktop_package_tool_update_refresh', timeout=>120;
assert_and_click 'desktop_package_tool_update_refresh', timeout => 120;
# for GNOME, the apply/download buttons remain visible for a long
# time, annoyingly. So let's actually watch the 'refreshing' state
# till it goes away
if ($desktop eq 'gnome') {
assert_screen 'desktop_package_tool_update_refreshing';
# now wait for it to go away
for my $n (1..30) {
for my $n (1 .. 30) {
last unless (check_screen 'desktop_package_tool_update_refreshing', 6);
# if we matched, we likely matched *immediately*, so sleep
# the other five seconds
@ -108,7 +108,7 @@ sub run {
# FIXME: also sometimes the update apply button just doesn't
# work, so keep clicking till it does:
# https://bugzilla.redhat.com/show_bug.cgi?id=1943943
for my $n (1..10) {
for my $n (1 .. 10) {
sleep 2;
assert_screen ['kde_offline_update_reboot', 'desktop_package_tool_update_apply'];
# break out if we reached the reboot button
@ -126,12 +126,12 @@ sub run {
assert_screen 'desktop_package_tool_update_done', 180;
}
# back to console to verify updates
$self->root_console(tty=>3);
$self->root_console(tty => 3);
verify_updated_packages;
}
sub test_flags {
return { fatal => 1 };
return {fatal => 1};
}
1;

Some files were not shown because too many files have changed in this diff Show More