Compare commits
1 Commits
b2c243c4c8
...
402baba336
Author | SHA1 | Date | |
---|---|---|---|
|
402baba336 |
@ -30,14 +30,8 @@ sub select_disks {
|
|||||||
# Anaconda hub
|
# 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
|
# Damn animation delay can cause bad clicks here too - wait for it
|
||||||
wait_still_screen 3;
|
|
||||||
assert_and_click "anaconda_main_hub_install_destination";
|
|
||||||
# it seems that sometimes the first click doesn't work with wayland
|
|
||||||
# on anaconda. we can't reproduce this manually, so work around it
|
|
||||||
# by just clicking again, this is safe even if the first click
|
|
||||||
# *did* work
|
|
||||||
sleep 1;
|
sleep 1;
|
||||||
click_lastmatch;
|
assert_and_click "anaconda_main_hub_install_destination";
|
||||||
|
|
||||||
# this is awkward, but on the install_repository_hd_variation test,
|
# this is awkward, but on the install_repository_hd_variation test,
|
||||||
# we have two disks but in F39 and F40 anaconda knows we're using
|
# we have two disks but in F39 and F40 anaconda knows we're using
|
||||||
@ -190,20 +184,9 @@ sub custom_blivet_format_partition {
|
|||||||
my %args = @_;
|
my %args = @_;
|
||||||
# Start editing the partition and select the Format option
|
# Start editing the partition and select the Format option
|
||||||
assert_and_click "anaconda_blivet_part_edit";
|
assert_and_click "anaconda_blivet_part_edit";
|
||||||
# workaround another case where first click doesn't always work
|
|
||||||
# on Wayland
|
|
||||||
unless (check_screen "anaconda_blivet_part_format", 10) {
|
|
||||||
assert_and_click "anaconda_blivet_part_edit";
|
|
||||||
}
|
|
||||||
assert_and_click "anaconda_blivet_part_format";
|
assert_and_click "anaconda_blivet_part_format";
|
||||||
# Select the appropriate filesystem type.
|
# Select the appropriate filesystem type.
|
||||||
assert_and_click "anaconda_blivet_part_drop_select";
|
assert_and_click "anaconda_blivet_part_drop_select";
|
||||||
unless (check_screen "anaconda_blivet_part_fs_$args{type}", 5) {
|
|
||||||
record_soft_failure "https://bugzilla.redhat.com/show_bug.cgi?id=2324231";
|
|
||||||
for (1 .. 15) {
|
|
||||||
send_key "up";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
assert_and_click "anaconda_blivet_part_fs_$args{type}";
|
assert_and_click "anaconda_blivet_part_fs_$args{type}";
|
||||||
wait_still_screen 2;
|
wait_still_screen 2;
|
||||||
# Fill in the label if needed.
|
# Fill in the label if needed.
|
||||||
|
@ -63,7 +63,7 @@ sub init() {
|
|||||||
# If this should change in the future, we would need to enhance this routine.
|
# If this should change in the future, we would need to enhance this routine.
|
||||||
sub x11_start_program {
|
sub x11_start_program {
|
||||||
my ($self, $program, $timeout, $options) = @_;
|
my ($self, $program, $timeout, $options) = @_;
|
||||||
send_key(get_var("DESKTOP") eq "i3" ? "alt-d" : "alt-f2");
|
send_key "alt-f2";
|
||||||
assert_screen "desktop_runner";
|
assert_screen "desktop_runner";
|
||||||
type_string $program, 20;
|
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!
|
||||||
|
46
lib/modularity.pm
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
package modularity;
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
|
||||||
|
use base 'Exporter';
|
||||||
|
use Exporter;
|
||||||
|
use lockapi;
|
||||||
|
use testapi;
|
||||||
|
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
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
sub parse_module_list {
|
||||||
|
my $output = shift;
|
||||||
|
my @output_lines = split(/\n/, $output);
|
||||||
|
my @parsed_list;
|
||||||
|
|
||||||
|
foreach my $line (@output_lines) {
|
||||||
|
my ($module, $stream, $profile) = split(/\s+/, $line);
|
||||||
|
unless ($module =~ /Fedora|Last|Hint|Name|^$/) {
|
||||||
|
$profile =~ s/,$//;
|
||||||
|
my %module = ("module" => $module, "stream" => $stream, "profile" => $profile);
|
||||||
|
push(@parsed_list, \%module);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return @parsed_list;
|
||||||
|
}
|
||||||
|
|
||||||
|
# This subroutine iterates over the given list of module hashes and returns True
|
||||||
|
# if it finds it in the list.
|
||||||
|
sub is_listed {
|
||||||
|
my ($module, $stream, $listref) = @_;
|
||||||
|
my $found = 0;
|
||||||
|
foreach (@{$listref}) {
|
||||||
|
if ($_->{module} eq $module and $_->{stream} eq $stream) {
|
||||||
|
$found = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $found;
|
||||||
|
}
|
193
lib/utils.pm
@ -4,9 +4,10 @@ use strict;
|
|||||||
|
|
||||||
use base 'Exporter';
|
use base 'Exporter';
|
||||||
use Exporter;
|
use Exporter;
|
||||||
|
|
||||||
use lockapi;
|
use lockapi;
|
||||||
use testapi qw(is_serial_terminal :DEFAULT);
|
use testapi qw(is_serial_terminal :DEFAULT);
|
||||||
our @EXPORT = qw/run_with_error_check type_safely type_very_safely desktop_vt boot_to_login_screen console_login console_switch_layout desktop_switch_layout console_loadkeys_us do_bootloader boot_decrypt check_release menu_launch_type setup_repos repo_setup get_workarounds disable_updates_repos cleanup_workaround_repo console_initial_setup handle_welcome_screen gnome_initial_setup anaconda_create_user check_desktop quit_firefox advisory_get_installed_packages acnp_handle_output advisory_check_nonmatching_packages start_with_launcher quit_with_shortcut disable_firefox_studies select_rescue_mode copy_devcdrom_as_isofile get_release_number check_left_bar check_top_bar check_prerelease check_version spell_version_number _assert_and_click is_branched rec_log repos_mirrorlist register_application get_registered_applications desktop_launch_terminal solidify_wallpaper check_and_install_git download_testdata make_serial_writable set_update_notification_timestamp kde_doublek_workaround dm_perform_login/;
|
our @EXPORT = qw/run_with_error_check type_safely type_very_safely desktop_vt boot_to_login_screen console_login console_switch_layout desktop_switch_layout console_loadkeys_us do_bootloader boot_decrypt check_release menu_launch_type setup_repos repo_setup get_workarounds disable_updates_repos cleanup_workaround_repo console_initial_setup handle_welcome_screen gnome_initial_setup anaconda_create_user check_desktop download_modularity_tests quit_firefox advisory_get_installed_packages advisory_check_nonmatching_packages start_with_launcher quit_with_shortcut disable_firefox_studies select_rescue_mode copy_devcdrom_as_isofile get_release_number check_left_bar check_top_bar check_prerelease check_version spell_version_number _assert_and_click is_branched rec_log repos_mirrorlist register_application get_registered_applications solidify_wallpaper check_and_install_git download_testdata make_serial_writable set_update_notification_timestamp kde_doublek_workaround/;
|
||||||
|
|
||||||
|
|
||||||
# We introduce this global variable to hold the list of applications that have
|
# We introduce this global variable to hold the list of applications that have
|
||||||
@ -474,10 +475,8 @@ sub get_workarounds {
|
|||||||
my $version = shift || get_var("VERSION");
|
my $version = shift || get_var("VERSION");
|
||||||
my %workarounds = (
|
my %workarounds = (
|
||||||
"39" => [],
|
"39" => [],
|
||||||
"40" => [],
|
"40" => ["FEDORA-2024-f86a143437"],
|
||||||
"41" => [],
|
"41" => [],
|
||||||
"42" => ["FEDORA-2024-b3e53a2b43"],
|
|
||||||
"eln" => [],
|
|
||||||
);
|
);
|
||||||
my $advortasks = $workarounds{$version};
|
my $advortasks = $workarounds{$version};
|
||||||
return @$advortasks;
|
return @$advortasks;
|
||||||
@ -500,6 +499,10 @@ sub disable_updates_repos {
|
|||||||
# on dnf 4 vs. dnf 5 and really sed is just as easy
|
# on dnf 4 vs. dnf 5 and really sed is just as easy
|
||||||
assert_script_run 'sed -i -e "s,enabled=1,enabled=0,g" /etc/yum.repos.d/fedora-updates-testing.repo';
|
assert_script_run 'sed -i -e "s,enabled=1,enabled=0,g" /etc/yum.repos.d/fedora-updates-testing.repo';
|
||||||
assert_script_run 'sed -i -e "s,enabled=1,enabled=0,g" /etc/yum.repos.d/fedora-updates.repo' if ($args{both});
|
assert_script_run 'sed -i -e "s,enabled=1,enabled=0,g" /etc/yum.repos.d/fedora-updates.repo' if ($args{both});
|
||||||
|
unless (script_run 'test -f /etc/yum.repos.d/fedora-updates-testing-modular.repo') {
|
||||||
|
assert_script_run 'sed -i -e "s,enabled=1,enabled=0,g" /etc/yum.repos.d/fedora-updates-testing-modular.repo';
|
||||||
|
assert_script_run 'sed -i -e "s,enabled=1,enabled=0,g" /etc/yum.repos.d/fedora-updates-modular.repo' if ($args{both});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sub _repo_setup_compose {
|
sub _repo_setup_compose {
|
||||||
@ -514,11 +517,12 @@ sub _repo_setup_compose {
|
|||||||
my $location = get_var("LOCATION");
|
my $location = get_var("LOCATION");
|
||||||
return unless $location;
|
return unless $location;
|
||||||
disable_updates_repos(both => 1);
|
disable_updates_repos(both => 1);
|
||||||
# we use script_run here as the rawhide repo files
|
# 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
|
# won't always exist and we don't want to bother testing or
|
||||||
# predicting their existence; assert_script_run doesn't buy you
|
# predicting their existence; assert_script_run doesn't buy you
|
||||||
# much with sed as it'll return 0 even if it replaced nothing
|
# much with sed as it'll return 0 even if it replaced nothing
|
||||||
script_run "sed -i -e 's,^metalink,#metalink,g' -e 's,^mirrorlist,#mirrorlist,g' -e 's,^#baseurl.*basearch,baseurl=${location}/Everything/\$basearch,g' -e 's,^#baseurl.*source,baseurl=${location}/Everything/source,g' /etc/yum.repos.d/{fedora,fedora-rawhide}.repo", 0;
|
script_run "sed -i -e 's,^metalink,#metalink,g' -e 's,^mirrorlist,#mirrorlist,g' -e 's,^#baseurl.*basearch,baseurl=${location}/Everything/\$basearch,g' -e 's,^#baseurl.*source,baseurl=${location}/Everything/source,g' /etc/yum.repos.d/{fedora,fedora-rawhide}.repo", 0;
|
||||||
|
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
|
# 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') {
|
# unless (script_run 'pushd /etc/yum.repos.d && tar czvf yumreposd.tar.gz * && popd') {
|
||||||
@ -589,12 +593,8 @@ sub setup_repos {
|
|||||||
if ($args{waonly} || $tag || $copr) {
|
if ($args{waonly} || $tag || $copr) {
|
||||||
return unless (@was);
|
return unless (@was);
|
||||||
}
|
}
|
||||||
# if we got this far, we're definitely downloading *something* so
|
# if we got this far, we're definitely downloading *something*
|
||||||
# install the download tools. split bodhi-client out because it
|
script_run "dnf -y install createrepo_c bodhi-client koji", 300;
|
||||||
# isn't there on ELN currently, which means we can't use workarounds
|
|
||||||
# specified as update IDs on ELN
|
|
||||||
script_run "dnf -y install createrepo_c koji", 300;
|
|
||||||
script_run "dnf -y install bodhi-client", 300;
|
|
||||||
get_setup_repos_script;
|
get_setup_repos_script;
|
||||||
my $wastring = join(',', @was);
|
my $wastring = join(',', @was);
|
||||||
my $udstring;
|
my $udstring;
|
||||||
@ -701,11 +701,8 @@ sub _repo_setup_updates {
|
|||||||
disable_updates_repos(both => 0) if ($version > $currrel);
|
disable_updates_repos(both => 0) if ($version > $currrel);
|
||||||
# use the buildroot repo on Rawhide: see e.g.
|
# use the buildroot repo on Rawhide: see e.g.
|
||||||
# https://pagure.io/fedora-ci/general/issue/376 for why
|
# https://pagure.io/fedora-ci/general/issue/376 for why
|
||||||
if ($version eq get_var("RAWREL") && get_var("TEST") ne "support_server") {
|
if (get_var("VERSION") eq get_var("RAWREL") && get_var("TEST") ne "support_server") {
|
||||||
assert_script_run 'printf "[koji-rawhide]\nname=koji-rawhide\nbaseurl=https://kojipkgs.fedoraproject.org/repos/f' . $version . '-build/latest/' . $arch . '/\ncost=2000\nenabled=1\ngpgcheck=0\n" > /etc/yum.repos.d/koji-rawhide.repo';
|
assert_script_run 'printf "[koji-rawhide]\nname=koji-rawhide\nbaseurl=https://kojipkgs.fedoraproject.org/repos/rawhide/latest/' . $arch . '/\ncost=2000\nenabled=1\ngpgcheck=0\n" > /etc/yum.repos.d/koji-rawhide.repo';
|
||||||
}
|
|
||||||
if (lc(get_var("VERSION")) eq "eln" && get_var("TEST") ne "support_server") {
|
|
||||||
assert_script_run 'printf "[koji-eln]\nname=koji-eln\nbaseurl=https://kojipkgs.fedoraproject.org/repos/eln-build/latest/' . $arch . '/\ncost=2000\nenabled=1\ngpgcheck=0\n" > /etc/yum.repos.d/koji-eln.repo';
|
|
||||||
}
|
}
|
||||||
if (get_var("CANNED")) {
|
if (get_var("CANNED")) {
|
||||||
# install and use en_US.UTF-8 locale for consistent sort
|
# install and use en_US.UTF-8 locale for consistent sort
|
||||||
@ -732,7 +729,7 @@ sub _repo_setup_updates {
|
|||||||
# above (and their deps, which dnf will include automatically),
|
# above (and their deps, which dnf will include automatically),
|
||||||
# just in case they're in the update under test; otherwise we
|
# just in case they're in the update under test; otherwise we
|
||||||
# get a bogus failure for the package not being updated
|
# get a bogus failure for the package not being updated
|
||||||
script_run "dnf -y remove createrepo_c koji", 600 if (get_var("INSTALL") && !get_var("CANNED"));
|
script_run "dnf -y remove bodhi-client createrepo_c koji", 600 if (get_var("INSTALL") && !get_var("CANNED"));
|
||||||
}
|
}
|
||||||
# exit the toolbox on CANNED
|
# exit the toolbox on CANNED
|
||||||
if (get_var("CANNED")) {
|
if (get_var("CANNED")) {
|
||||||
@ -812,23 +809,12 @@ sub console_initial_setup {
|
|||||||
sub handle_welcome_screen {
|
sub handle_welcome_screen {
|
||||||
# handle the 'welcome' screen on GNOME and KDE since F38. shared
|
# handle the 'welcome' screen on GNOME and KDE since F38. shared
|
||||||
# in a few places
|
# in a few places
|
||||||
my %args = @_;
|
if (check_screen "getting_started", 45) {
|
||||||
my $timeout = $args{timeout} || 45;
|
|
||||||
if (check_screen "getting_started", $timeout) {
|
|
||||||
if (get_var("DESKTOP") eq "kde") {
|
if (get_var("DESKTOP") eq "kde") {
|
||||||
# just closing it seems to result in it running again on
|
# just closing it seems to result in it running again on
|
||||||
# next boot, so let's click Skip
|
# next boot, so let's click Skip
|
||||||
click_lastmatch;
|
click_lastmatch;
|
||||||
}
|
}
|
||||||
elsif (get_var("DESKTOP") eq "i3") {
|
|
||||||
# Press enter to start config, then move one line down
|
|
||||||
# and press enter once more to confirm.
|
|
||||||
send_key("ret");
|
|
||||||
sleep(1);
|
|
||||||
send_key("down");
|
|
||||||
sleep(1);
|
|
||||||
send_key("ret");
|
|
||||||
}
|
|
||||||
else {
|
else {
|
||||||
send_key "alt-f4";
|
send_key "alt-f4";
|
||||||
# for GNOME 40, alt-f4 doesn't work
|
# for GNOME 40, alt-f4 doesn't work
|
||||||
@ -879,28 +865,29 @@ sub gnome_initial_setup {
|
|||||||
# now, we're going to figure out how many of them this test will
|
# now, we're going to figure out how many of them this test will
|
||||||
# *actually* see...
|
# *actually* see...
|
||||||
if ($args{live}) {
|
if ($args{live}) {
|
||||||
# this is the flow we expect to see when booting live images
|
# this is the flow we see when booting an F40+ Workstation live
|
||||||
# with anaconda webui, though as of 2024-08 it is unused as
|
# we only get language and keyboard
|
||||||
# the patch has been dropped due to maintenance difficulty
|
|
||||||
@nexts = ('language', 'keyboard');
|
@nexts = ('language', 'keyboard');
|
||||||
}
|
}
|
||||||
if ($args{prelogin}) {
|
if ($args{prelogin}) {
|
||||||
# On releases that use anaconda gtkui on live images, we
|
# 'language', 'keyboard' and 'timezone' were skipped between F28
|
||||||
# configure g-i-s to skip 'language', 'keyboard' and 'timezone'
|
# and F39 in the 'new user' mode by
|
||||||
# using a custom vendor.conf:
|
|
||||||
# https://fedoraproject.org//wiki/Changes/ReduceInitialSetupRedundancy
|
# https://fedoraproject.org//wiki/Changes/ReduceInitialSetupRedundancy
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1474787 ,
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1474787 ,
|
||||||
# but 'language' is never *really* skipped (see above)
|
# except 'language' was never *really* skipped (see above)
|
||||||
if ($relnum < 42) {
|
if ($relnum < 41) {
|
||||||
@nexts = grep { $_ ne 'keyboard' } @nexts;
|
@nexts = grep { $_ ne 'keyboard' } @nexts;
|
||||||
@nexts = grep { $_ ne 'timezone' } @nexts;
|
@nexts = grep { $_ ne 'timezone' } @nexts;
|
||||||
}
|
}
|
||||||
# if g-i-s ran before anaconda (as expected on the live + webui
|
# From gnome-initial-setup 45~beta-3 on, no screens are
|
||||||
# flow), anaconda forwards a g-i-s state file to the installed
|
# skipped in vendor.conf. 'language' and 'keyboard' should be
|
||||||
# system, causing it to skip 'language' and 'keyboard' (meaning
|
# skipped (meaning 'language' is turned into 'welcome' and
|
||||||
# 'language' is turned into 'welcome' and 'keyboard' is really
|
# 'keyboard' is really skipped) on live installs because we saw
|
||||||
# skipped)
|
# them already, but this only works from anaconda 39.32.2 /
|
||||||
if (match_has_tag "start_setup") {
|
# 40.3 onwards. network installs and disk image deployments
|
||||||
|
# will show these screens (which is good for disk image
|
||||||
|
# deployments, but redundant for network installs)
|
||||||
|
elsif (match_has_tag "start_setup") {
|
||||||
# if we saw start_setup, that means 'language' was skipped
|
# if we saw start_setup, that means 'language' was skipped
|
||||||
# and we can assume 'keyboard' will also be skipped
|
# and we can assume 'keyboard' will also be skipped
|
||||||
@nexts = grep { $_ ne 'keyboard' } @nexts;
|
@nexts = grep { $_ ne 'keyboard' } @nexts;
|
||||||
@ -1118,13 +1105,25 @@ sub check_desktop {
|
|||||||
last;
|
last;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($activematched) {
|
if ($activematched) {
|
||||||
# make sure we got to inactive after active
|
# make sure we got to inactive after active
|
||||||
die "never reached apps_menu_button_inactive!" unless (match_has_tag "apps_menu_button_inactive");
|
die "never reached apps_menu_button_inactive!" unless (match_has_tag "apps_menu_button_inactive");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub download_modularity_tests {
|
||||||
|
# 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 --retry-delay 10 --max-time 30 --retry 5 -o /root/test.py https://pagure.io/fedora-qa/modularity_testing_scripts/raw/master/f/modular_functions.py', timeout => 180;
|
||||||
|
if ($whitelist eq 'whitelist') {
|
||||||
|
assert_script_run 'curl --retry-delay 10 --max-time 30 --retry 5 -o /root/whitelist https://pagure.io/fedora-qa/modularity_testing_scripts/raw/master/f/whitelist', timeout => 180;
|
||||||
|
}
|
||||||
|
assert_script_run 'chmod 755 /root/test.py';
|
||||||
|
}
|
||||||
|
|
||||||
sub quit_firefox {
|
sub quit_firefox {
|
||||||
# Quit Firefox, handling the 'close multiple tabs' warning screen if
|
# Quit Firefox, handling the 'close multiple tabs' warning screen if
|
||||||
# it shows up. Expects to quit to a recognizable console
|
# it shows up. Expects to quit to a recognizable console
|
||||||
@ -1236,27 +1235,6 @@ sub advisory_get_installed_packages {
|
|||||||
upload_logs "/mnt/testedpkgs.txt", failok => 1;
|
upload_logs "/mnt/testedpkgs.txt", failok => 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub acnp_handle_output {
|
|
||||||
my ($ret, $wrapper, $fatal) = @_;
|
|
||||||
# handle output of updvercheck.py. Split out so the lorax
|
|
||||||
# tests can use the same logic
|
|
||||||
if ($ret == 2) {
|
|
||||||
record_soft_failure "Some update package(s) not installed, but this is probably OK, see script output";
|
|
||||||
}
|
|
||||||
if ($ret == 1 || $ret == 3) {
|
|
||||||
my $message = "Package(s) from update not installed when it should have been! See script output";
|
|
||||||
$message = "Script failed unexpectedly!" if ($ret == 1);
|
|
||||||
if ($fatal) {
|
|
||||||
set_var("_ACNMP_DONE", "1") unless $wrapper;
|
|
||||||
die $message;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
# if we're already in post_fail_hook, we don't want to die again
|
|
||||||
record_info $message;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sub advisory_check_nonmatching_packages {
|
sub advisory_check_nonmatching_packages {
|
||||||
# For update tests (this only works if we've been through
|
# For update tests (this only works if we've been through
|
||||||
# _repo_setup_updates), figure out if we have a different version
|
# _repo_setup_updates), figure out if we have a different version
|
||||||
@ -1312,7 +1290,23 @@ sub advisory_check_nonmatching_packages {
|
|||||||
my $cmd = 'python3 ./updvercheck.py /mnt/updatepkgs.txt /tmp/installedupdatepkgs.txt';
|
my $cmd = 'python3 ./updvercheck.py /mnt/updatepkgs.txt /tmp/installedupdatepkgs.txt';
|
||||||
$cmd .= " $advisory" if ($advisory);
|
$cmd .= " $advisory" if ($advisory);
|
||||||
my $ret = script_run $cmd;
|
my $ret = script_run $cmd;
|
||||||
acnp_handle_output($ret, $wrapper, $args{fatal});
|
# 2 is warnings only, 3 is problems, 1 means the script died in
|
||||||
|
# some other way (probably a bug)
|
||||||
|
if ($ret == 2) {
|
||||||
|
record_soft_failure "Some update package(s) not installed, but this is probably OK, see script output";
|
||||||
|
}
|
||||||
|
if ($ret == 1 || $ret == 3) {
|
||||||
|
my $message = "Package(s) from update not installed when it should have been! See script output";
|
||||||
|
$message = "Script failed unexpectedly!" if ($ret == 1);
|
||||||
|
if ($args{fatal}) {
|
||||||
|
set_var("_ACNMP_DONE", "1") unless $wrapper;
|
||||||
|
die $message;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
# if we're already in post_fail_hook, we don't want to die again
|
||||||
|
record_info $message;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
sub select_rescue_mode {
|
sub select_rescue_mode {
|
||||||
@ -1381,15 +1375,13 @@ sub menu_launch_type {
|
|||||||
# launcher, typing the specified string and hitting enter. Pass
|
# launcher, typing the specified string and hitting enter. Pass
|
||||||
# the string to be typed to launch whatever it is you want.
|
# the string to be typed to launch whatever it is you want.
|
||||||
my $app = shift;
|
my $app = shift;
|
||||||
my $key = 'super';
|
|
||||||
$key = 'alt-d' if (get_var("DESKTOP") eq "i3");
|
|
||||||
if (get_var("DESKTOP") eq "kde") {
|
|
||||||
# To overcome BZ2097208, let's move the mouse out of the way
|
# To overcome BZ2097208, let's move the mouse out of the way
|
||||||
# and give the launcher some time to take the correct focus.
|
# and give the launcher some time to take the correct focus.
|
||||||
|
if (get_var("DESKTOP") eq "kde") {
|
||||||
diag("Moving the mouse away from the launcher.");
|
diag("Moving the mouse away from the launcher.");
|
||||||
mouse_set(1, 1);
|
mouse_set(1, 1);
|
||||||
}
|
}
|
||||||
wait_screen_change { send_key $key; };
|
wait_screen_change { send_key 'super'; };
|
||||||
# srsly KDE y u so slo
|
# srsly KDE y u so slo
|
||||||
wait_still_screen 3;
|
wait_still_screen 3;
|
||||||
type_very_safely $app;
|
type_very_safely $app;
|
||||||
@ -1609,22 +1601,6 @@ sub register_application {
|
|||||||
print("APPLICATION REGISTERED: $application \n");
|
print("APPLICATION REGISTERED: $application \n");
|
||||||
}
|
}
|
||||||
|
|
||||||
# launch a terminal from a desktop, using the most efficient/reliable
|
|
||||||
# approach (not appropriate if we really need to test launching it a
|
|
||||||
# specific way)
|
|
||||||
sub desktop_launch_terminal {
|
|
||||||
my $desktop = get_var("DESKTOP");
|
|
||||||
if ($desktop eq "i3") {
|
|
||||||
send_key "alt-ret";
|
|
||||||
}
|
|
||||||
elsif ($desktop eq "kde") {
|
|
||||||
send_key "ctrl-alt-t";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
menu_launch_type "terminal";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# The KDE desktop tests are very difficult to maintain, because the transparency
|
# The KDE desktop tests are very difficult to maintain, because the transparency
|
||||||
# of the menu requires a lot of different needles to cover the elements.
|
# of the menu requires a lot of different needles to cover the elements.
|
||||||
# Therefore it is useful to change the background to a solid colour.
|
# Therefore it is useful to change the background to a solid colour.
|
||||||
@ -1668,8 +1644,7 @@ sub solidify_wallpaper {
|
|||||||
}
|
}
|
||||||
elsif ($desktop eq "gnome") {
|
elsif ($desktop eq "gnome") {
|
||||||
# Start the terminal to set up backgrounds.
|
# Start the terminal to set up backgrounds.
|
||||||
desktop_launch_terminal;
|
menu_launch_type "gnome-terminal";
|
||||||
assert_screen "apps_run_terminal";
|
|
||||||
# wait to be sure it's fully open
|
# 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
|
# When the application opens, run command in it to set the background to black
|
||||||
@ -1777,8 +1752,7 @@ sub set_update_notification_timestamp {
|
|||||||
sub start_applications {
|
sub start_applications {
|
||||||
my @applications = @_;
|
my @applications = @_;
|
||||||
# Open the terminal
|
# Open the terminal
|
||||||
desktop_launch_terminal;
|
menu_launch_type("terminal");
|
||||||
assert_screen("apps_run_terminal");
|
|
||||||
wait_still_screen(2);
|
wait_still_screen(2);
|
||||||
# Iterate over the application list
|
# Iterate over the application list
|
||||||
# and start each application from it.
|
# and start each application from it.
|
||||||
@ -1798,46 +1772,11 @@ sub start_applications {
|
|||||||
# close operation before we do anything 'real'. this is repeated in
|
# close operation before we do anything 'real'. this is repeated in
|
||||||
# several tests so we share it here
|
# several tests so we share it here
|
||||||
sub kde_doublek_workaround {
|
sub kde_doublek_workaround {
|
||||||
my %args = @_;
|
|
||||||
$args{key} //= 'k';
|
|
||||||
wait_screen_change { send_key 'super'; };
|
wait_screen_change { send_key 'super'; };
|
||||||
wait_still_screen 3;
|
wait_still_screen 3;
|
||||||
send_key $args{key};
|
send_key "k";
|
||||||
wait_still_screen 5;
|
wait_still_screen 5;
|
||||||
send_key 'esc';
|
send_key "esc";
|
||||||
wait_still_screen 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
# handle login at a graphical DM once we have reached the initial
|
|
||||||
# DM screen. Factored out of _graphical_wait_login for reuse by
|
|
||||||
# tests that reboot and need to login afterwards
|
|
||||||
sub dm_perform_login {
|
|
||||||
my ($desktop, $password) = @_;
|
|
||||||
# GDM 3.24.1 dumps a cursor in the middle of the screen here...
|
|
||||||
mouse_hide;
|
|
||||||
if ($desktop eq 'gnome') {
|
|
||||||
# we have to hit enter to get the password dialog, and it
|
|
||||||
# doesn't always work for some reason so just try it three
|
|
||||||
# times
|
|
||||||
send_key_until_needlematch("graphical_login_input", "ret", 3, 5);
|
|
||||||
}
|
|
||||||
assert_screen "graphical_login_input";
|
|
||||||
# seems like we often double-type on aarch64 if we start right
|
|
||||||
# away
|
|
||||||
wait_still_screen(stilltime => 5, similarity_level => 38);
|
|
||||||
if (get_var("SWITCHED_LAYOUT")) {
|
|
||||||
# see _do_install_and_reboot; when layout is switched
|
|
||||||
# user password is doubled to contain both US and native
|
|
||||||
# chars
|
|
||||||
desktop_switch_layout 'ascii';
|
|
||||||
type_very_safely $password;
|
|
||||||
desktop_switch_layout 'native';
|
|
||||||
type_very_safely $password;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
type_very_safely $password;
|
|
||||||
}
|
|
||||||
send_key "ret";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
7
main.pm
@ -352,8 +352,11 @@ sub load_postinstall_tests() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# load the ADVISORY / KOJITASK post-install test - this records which
|
# load the ADVISORY / KOJITASK post-install test - this records which
|
||||||
# update or task packages were actually installed during the test.
|
# update or task packages were actually installed during the test. Don't
|
||||||
if (get_var("ADVISORY_OR_TASK") && !get_var("NO_ADVISORY_POST")) {
|
# do this for netinst tests; as these just use the default install repo,
|
||||||
|
# they will not get the packages from the update. But installs from live
|
||||||
|
# image and ostree installer image should get them.
|
||||||
|
if (get_var("ADVISORY_OR_TASK") && get_var("TEST") ne "install_default_update_netinst") {
|
||||||
# don't do this for support server unless the update is for the same
|
# don't do this for support server unless the update is for the same
|
||||||
# release as the support server disk image, as we don't install the
|
# release as the support server disk image, as we don't install the
|
||||||
# updates on support server when they differ
|
# updates on support server when they differ
|
||||||
|
@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"xpos": 787,
|
|
||||||
"width": 135,
|
|
||||||
"type": "match",
|
|
||||||
"ypos": 34,
|
|
||||||
"height": 14
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"LANGUAGE-french",
|
|
||||||
"prerelease_note"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 172 KiB |
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"xpos": 812,
|
|
||||||
"ypos": 15,
|
|
||||||
"width": 86,
|
|
||||||
"height": 16,
|
|
||||||
"type": "match"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"version_42_ident"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 145 KiB |
Before Width: | Height: | Size: 154 KiB |
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"type": "match",
|
|
||||||
"width": 178,
|
|
||||||
"xpos": 55,
|
|
||||||
"ypos": 55,
|
|
||||||
"height": 27
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"version_42_ident"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 75 KiB |
@ -1,17 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"height": 17,
|
|
||||||
"ypos": 512,
|
|
||||||
"type": "match",
|
|
||||||
"width": 178,
|
|
||||||
"xpos": 608
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"anaconda_install_destination_save_passphrase",
|
|
||||||
"ENV-DISTRI-fedora",
|
|
||||||
"LANGUAGE-french"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 221 KiB |
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"type": "match",
|
|
||||||
"xpos": 40,
|
|
||||||
"ypos": 340,
|
|
||||||
"width": 19,
|
|
||||||
"height": 17
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"anaconda_install_destination_select_disk_1"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 120 KiB |
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"height": 17,
|
|
||||||
"xpos": 40,
|
|
||||||
"ypos": 340,
|
|
||||||
"type": "match",
|
|
||||||
"width": 19
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"anaconda_install_destination_select_disk_1"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 41 KiB |
@ -1,24 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"width": 314,
|
|
||||||
"type": "match",
|
|
||||||
"height": 20,
|
|
||||||
"xpos": 705,
|
|
||||||
"ypos": 670
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "match",
|
|
||||||
"width": 48,
|
|
||||||
"ypos": 732,
|
|
||||||
"xpos": 902,
|
|
||||||
"height": 14
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"anaconda_install_done",
|
|
||||||
"ENV-DISTRI-fedora",
|
|
||||||
"LANGUAGE-english"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 17 KiB |
@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"height": 15,
|
|
||||||
"xpos": 260,
|
|
||||||
"ypos": 317,
|
|
||||||
"width": 68,
|
|
||||||
"type": "match",
|
|
||||||
"click_point": {
|
|
||||||
"xpos": 6.5,
|
|
||||||
"ypos": 7.5
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"anaconda_install_root_password_screen",
|
|
||||||
"ENV-DISTRI-fedora"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 30 KiB |
@ -1,31 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"type": "match",
|
|
||||||
"width": 73,
|
|
||||||
"height": 17,
|
|
||||||
"xpos": 245,
|
|
||||||
"ypos": 161
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "match",
|
|
||||||
"width": 62,
|
|
||||||
"height": 17,
|
|
||||||
"xpos": 255,
|
|
||||||
"ypos": 264
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ypos": 50,
|
|
||||||
"height": 24,
|
|
||||||
"xpos": 11,
|
|
||||||
"type": "match",
|
|
||||||
"width": 57
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"anaconda_install_user_creation_screen",
|
|
||||||
"ENV-DISTRI-fedora",
|
|
||||||
"LANGUAGE-english"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 51 KiB |
@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"type": "match",
|
|
||||||
"width": 49,
|
|
||||||
"xpos": 218,
|
|
||||||
"height": 31,
|
|
||||||
"ypos": 194
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"LANGUAGE-arabic",
|
|
||||||
"anaconda_select_install_lang_filtered"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 105 KiB |
@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"xpos": 361,
|
|
||||||
"height": 28,
|
|
||||||
"ypos": 111,
|
|
||||||
"type": "match",
|
|
||||||
"width": 87
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"anaconda_select_install_lang",
|
|
||||||
"ENV-DISTRI-fedora"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 150 KiB |
@ -1,18 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"width": 171,
|
|
||||||
"type": "match",
|
|
||||||
"ypos": 210,
|
|
||||||
"height": 18,
|
|
||||||
"xpos": 606
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"anaconda_select_install_lang_selected",
|
|
||||||
"anaconda_select_install_lang_filtered",
|
|
||||||
"ENV-DISTRI-fedora",
|
|
||||||
"LANGUAGE-english"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 47 KiB |
@ -1,17 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"type": "match",
|
|
||||||
"width": 110,
|
|
||||||
"ypos": 706,
|
|
||||||
"xpos": 888,
|
|
||||||
"height": 17
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"anaconda_main_hub_begin_installation",
|
|
||||||
"ENV-DISTRI-fedora",
|
|
||||||
"LANGUAGE-english"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 43 KiB |
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"height": 18,
|
|
||||||
"xpos": 663,
|
|
||||||
"ypos": 267,
|
|
||||||
"width": 35,
|
|
||||||
"type": "match"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"anaconda_network_address_add"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 72 KiB |
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"type": "match",
|
|
||||||
"width": 86,
|
|
||||||
"ypos": 143,
|
|
||||||
"height": 17,
|
|
||||||
"xpos": 513
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"anaconda_network_ipv4"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 174 KiB |
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"type": "match",
|
|
||||||
"width": 342,
|
|
||||||
"xpos": 69,
|
|
||||||
"height": 15,
|
|
||||||
"ypos": 192
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"anaconda_network_method"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 176 KiB |
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"ypos": 255,
|
|
||||||
"xpos": 137,
|
|
||||||
"height": 18,
|
|
||||||
"width": 52,
|
|
||||||
"type": "match"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"anaconda_network_method_manual"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 182 KiB |
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"xpos": 339,
|
|
||||||
"ypos": 346,
|
|
||||||
"width": 116,
|
|
||||||
"height": 16,
|
|
||||||
"type": "match"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"anaconda_blivet_part_boot_selected"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 140 KiB |
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"type": "match",
|
|
||||||
"width": 51,
|
|
||||||
"xpos": 412,
|
|
||||||
"height": 12,
|
|
||||||
"ypos": 212
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"anaconda_blivet_vdb_selected"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 150 KiB |
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"xpos": 270,
|
|
||||||
"ypos": 337,
|
|
||||||
"width": 50,
|
|
||||||
"height": 17,
|
|
||||||
"type": "match"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"anaconda_webui_select"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 47 KiB |
@ -1,24 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"ypos": 148,
|
|
||||||
"type": "match",
|
|
||||||
"height": 58,
|
|
||||||
"width": 58,
|
|
||||||
"xpos": 483
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ypos": 341,
|
|
||||||
"type": "match",
|
|
||||||
"height": 17,
|
|
||||||
"width": 31,
|
|
||||||
"xpos": 442
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"anaconda_install_done",
|
|
||||||
"ENV-DISTRI-fedora",
|
|
||||||
"LANGUAGE-english"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 90 KiB |
@ -1,17 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"type": "match",
|
|
||||||
"xpos": 363,
|
|
||||||
"ypos": 188,
|
|
||||||
"width": 17,
|
|
||||||
"height": 24
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"anaconda_install_destination_select_disk_1",
|
|
||||||
"ENV-DISTRI-fedora",
|
|
||||||
"ENV-FLAVOR-server"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 112 KiB |
@ -1,17 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"height": 17,
|
|
||||||
"xpos": 364,
|
|
||||||
"width": 154,
|
|
||||||
"type": "match",
|
|
||||||
"ypos": 726
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"ENV-DISTRI-fedora",
|
|
||||||
"LANGUAGE-english",
|
|
||||||
"anaconda_webui_begin_installation"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 92 KiB |
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"height": 24,
|
|
||||||
"ypos": 249,
|
|
||||||
"xpos": 266,
|
|
||||||
"width": 141,
|
|
||||||
"type": "match"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"anaconda_webui_disk_select"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 124 KiB |
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"xpos": 457,
|
|
||||||
"ypos": 249,
|
|
||||||
"width": 130,
|
|
||||||
"height": 37,
|
|
||||||
"type": "match"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"41_background"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 776 KiB |
@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"xpos": 459,
|
|
||||||
"ypos": 248,
|
|
||||||
"width": 127,
|
|
||||||
"height": 39,
|
|
||||||
"type": "match"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"41_background",
|
|
||||||
"41_background_dark"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 968 KiB |
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"height": 17,
|
|
||||||
"type": "match",
|
|
||||||
"xpos": 410,
|
|
||||||
"width": 55,
|
|
||||||
"ypos": 736
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"browser_kernelorg_patch"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 224 KiB |
@ -1,19 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"type": "match",
|
|
||||||
"click_point": {
|
|
||||||
"xpos": 8,
|
|
||||||
"ypos": 8
|
|
||||||
},
|
|
||||||
"width": 44,
|
|
||||||
"height": 19,
|
|
||||||
"xpos": 534,
|
|
||||||
"ypos": 316
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"cockpit_updates_auto_all"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 117 KiB |
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"height": 16,
|
|
||||||
"type": "match",
|
|
||||||
"xpos": 263,
|
|
||||||
"width": 81,
|
|
||||||
"ypos": 519
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"cockpit_logs_detail"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 192 KiB |
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"xpos": 1,
|
|
||||||
"width": 20,
|
|
||||||
"ypos": 753,
|
|
||||||
"type": "match",
|
|
||||||
"height": 14
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"console_in_toolbox"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 84 KiB |
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"xpos": 1,
|
|
||||||
"height": 14,
|
|
||||||
"ypos": 385,
|
|
||||||
"type": "match",
|
|
||||||
"width": 20
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"console_in_toolbox"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 40 KiB |
@ -1,25 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"xpos": 71,
|
|
||||||
"width": 72,
|
|
||||||
"ypos": 625,
|
|
||||||
"type": "match",
|
|
||||||
"height": 14
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"xpos": 48,
|
|
||||||
"ypos": 753,
|
|
||||||
"width": 30,
|
|
||||||
"height": 15,
|
|
||||||
"type": "match"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"root_logged_in",
|
|
||||||
"root_console",
|
|
||||||
"root_console_dracut",
|
|
||||||
"ENV-DISTRI-fedora"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 95 KiB |
@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"xpos": 884,
|
|
||||||
"width": 16,
|
|
||||||
"height": 19,
|
|
||||||
"type": "match",
|
|
||||||
"ypos": 86
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"browser_download_complete",
|
|
||||||
"firefox_download_complete"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 293 KiB |
@ -1,30 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"width": 17,
|
|
||||||
"ypos": 56,
|
|
||||||
"height": 18,
|
|
||||||
"type": "match",
|
|
||||||
"xpos": 88
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"width": 17,
|
|
||||||
"type": "match",
|
|
||||||
"xpos": 991,
|
|
||||||
"height": 18,
|
|
||||||
"ypos": 56
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ypos": 91,
|
|
||||||
"xpos": 369,
|
|
||||||
"type": "match",
|
|
||||||
"height": 17,
|
|
||||||
"width": 19
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"firefox",
|
|
||||||
"browser"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 942 KiB |
@ -1,16 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"width": 78,
|
|
||||||
"ypos": 207,
|
|
||||||
"type": "match",
|
|
||||||
"xpos": 631,
|
|
||||||
"height": 14
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"apps_run_firefox_stop",
|
|
||||||
"firefox_close_tabs"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 166 KiB |
Before Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 27 KiB |
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"width": 129,
|
|
||||||
"xpos": 446,
|
|
||||||
"ypos": 119,
|
|
||||||
"type": "match",
|
|
||||||
"height": 19
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"apps_run_gvim"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 444 KiB |
@ -1,22 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"width": 25,
|
|
||||||
"xpos": 280,
|
|
||||||
"type": "match",
|
|
||||||
"ypos": 168,
|
|
||||||
"height": 21
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"ypos": 125,
|
|
||||||
"xpos": 192,
|
|
||||||
"width": 25,
|
|
||||||
"type": "match",
|
|
||||||
"height": 20
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"apps_run_terminal"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 654 KiB |
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"width": 141,
|
|
||||||
"xpos": 442,
|
|
||||||
"ypos": 545,
|
|
||||||
"type": "match",
|
|
||||||
"height": 31
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"apps_run_tour"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 45 KiB |
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"height": 64,
|
|
||||||
"type": "match",
|
|
||||||
"width": 137,
|
|
||||||
"xpos": 229,
|
|
||||||
"ypos": 159
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"archiver_archive_created"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 33 KiB |
@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"xpos": 229,
|
|
||||||
"height": 64,
|
|
||||||
"ypos": 159,
|
|
||||||
"width": 137,
|
|
||||||
"type": "match"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"value": "icon seems wrong, will report",
|
|
||||||
"name": "workaround"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"archiver_archive_created"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 83 KiB |
@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"type": "match",
|
|
||||||
"height": 64,
|
|
||||||
"xpos": 229,
|
|
||||||
"ypos": 159,
|
|
||||||
"width": 137
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [
|
|
||||||
{
|
|
||||||
"name": "workaround",
|
|
||||||
"value": "icon seems wrong, will report"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"archiver_archive_created"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 90 KiB |
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"ypos": 193,
|
|
||||||
"type": "match",
|
|
||||||
"xpos": 670,
|
|
||||||
"width": 71,
|
|
||||||
"height": 19
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"archiver_button_create"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 142 KiB |
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"ypos": 155,
|
|
||||||
"xpos": 257,
|
|
||||||
"width": 86,
|
|
||||||
"type": "match",
|
|
||||||
"height": 71
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"archiver_file_one"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 86 KiB |
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"type": "match",
|
|
||||||
"xpos": 671,
|
|
||||||
"width": 57,
|
|
||||||
"ypos": 345,
|
|
||||||
"height": 22
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"archiver_format_selector"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 141 KiB |
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"height": 43,
|
|
||||||
"xpos": 528,
|
|
||||||
"width": 94,
|
|
||||||
"type": "match",
|
|
||||||
"ypos": 498
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"archiver_select_tarxz"
|
|
||||||
]
|
|
||||||
}
|
|
Before Width: | Height: | Size: 165 KiB |
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"width": 168,
|
|
||||||
"type": "match",
|
|
||||||
"height": 44,
|
|
||||||
"xpos": 6,
|
|
||||||
"ypos": 121
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"calc_help_factorial"
|
|
||||||
]
|
|
||||||
}
|
|