Logic tweaks and needles for GNOME and KDE ELN tests
All checks were successful
CI via Tox and perl / tox (pull_request) Successful in 1m25s
CI via Tox and perl / perl (pull_request) Successful in 3m26s
CI via Tox and perl / checkwiki (pull_request) Successful in 48s
AI Code Review / ai-review (pull_request_target) Successful in 26s

The new needles are for:

* Installer pages that are suppressed on the Fedora lives
* ELN vs. Fedora logo
* ELN background
* "Fedora ELN" identity needles
* Different default GNOME font (before we force it back)

Logic changes:

* ELN uses a different default GNOME font, we force it back to
  Adwaita post-install so we don't need hundreds of new needles
* No EOL date for ELN in Bodhi
* Various version checks need updating for version being 'eln'
* Use xfreerdp for remote_desktop_client (Connections not available)
* Fix firewall port opening in remote_desktop_server (we need to
  open both TCP and UDP and we need to do --permanent as we reboot)
* Adjust expected values in os_release.pm
* Download black background images instead of generating them on
  the fly as GraphicsMagick is not available on ELN (did this for
  Fedora too as it's simpler)
* Use a different expected font in fonts/search as Liberation is
  not present
* Various things disabled:
** check_default_fonts (probably doesn't apply properly)
** apps_startstop subtests and app tests for apps not present
** some elements of gnome-panel that use apps not present
** some elements of navigation that rely on packages not available

Signed-off-by: Adam Williamson <awilliam@redhat.com>
This commit is contained in:
Adam Williamson 2026-02-19 18:29:59 -08:00
commit e552f19f94
165 changed files with 1436 additions and 102 deletions

View file

@ -119,6 +119,8 @@ for rel in range(30, 100):
testtags.append(f"{rel}_background")
testtags.append(f"{rel}_background_dark")
testtags.append(f"version_{rel}_ident")
testtags.append("eln_background")
testtags.append("eln_background_dark")
# anaconda id needles, using tell_source
for source in ("workstation", "generic", "server"):
testtags.append(f"leftbar_{source}")

View file

@ -145,7 +145,7 @@ def compare_eol_dates(release: int, eol: date) -> bool:
)
bodhi = bodhi_response.json()
# Only convert the date if it is present, otherwise record 0.
if bodhi["eol"]:
if bodhi.get("eol"):
bodhi_eol = isodate(bodhi["eol"])
else:
bodhi_eol = epochdate(0)

View file

@ -70,10 +70,12 @@ sub script_retry {
sub get_release_number {
# return the release number; so usually VERSION, but for Rawhide,
# we return RAWREL. This allows us to avoid constantly doing stuff
# like `if ($version eq "Rawhide" || $version > 30)`.
# like `if ($version eq "Rawhide" || $version > 30)`. We do the
# same for ELN because it behaves most like Rawhide, out of the
# choices.
my $version = get_var("VERSION");
my $rawrel = get_var("RAWREL", "Rawhide");
return $rawrel if ($version eq "Rawhide");
return $rawrel if ($version eq "Rawhide" || $version eq "eln");
return $version;
}
@ -541,10 +543,10 @@ sub disable_updates_repos {
}
sub _repo_setup_compose {
# doesn't work for IoT or CoreOS, anything that hits this on those
# paths must work with default mirror config...
# doesn't work for IoT, CoreOS, or ELN anything that hits this on
# those paths must work with default mirror config...
my $subvariant = get_var("SUBVARIANT");
return if ($subvariant eq "IoT" || $subvariant eq "CoreOS");
return if ($subvariant eq "IoT" || $subvariant eq "CoreOS" || get_var("VERSION") eq "eln");
# ditto respin composes (LOCATION doesn't have a repo in it)
return if (get_var('BUILD') =~ 'Respin');
# Appropriate repo setup steps for testing a compose

22
main.pm
View file

@ -244,7 +244,9 @@ sub _load_early_postinstall_tests {
}
if (get_var("LANGUAGE", "") eq "japanese" || get_var("LANGUAGE", "") eq "arabic") {
_load_instance("tests/check_default_fonts", $instance);
unless (get_var('VERSION') eq 'eln') {
_load_instance("tests/check_default_fonts", $instance);
}
}
@ -420,12 +422,28 @@ if (get_var("STARTSTOP")) {
# Find all tests from a directory defined by the DESKTOP variable
my @apptests = glob "${casedir}/tests/apps_startstop/${desktop}/*.pm";
my @filter;
# Filter out tests for apps not in ELN
if (get_var('VERSION') eq 'eln') {
if (get_var('DESKTOP') eq 'kde') {
@filter = qw(abrt akregator cpteditor cteditor fmw kaddressbook kimport kleopatra kmail kmail_header kontakt korganizer ktnef lcalc limpress lwriter patience pimexporter);
}
elsif (get_var('DESKTOP') eq 'gnome') {
@filter = qw(boxes calendar connections contacts fmw help lcalc limpress logs lwriter maps scan videos weather);
}
if (get_var('ARCH') eq 'aarch64') {
# these are missing on aarch64 for...dumb reasons, ask
# tpopela
push(@filter, ('camera', 'imageviewer'));
}
}
# Now load them
foreach my $filepath (@apptests) {
my $file = basename($filepath);
next if (grep { "$_.pm" eq $file } @filter);
autotest::loadtest "tests/apps_startstop/${desktop}/${file}";
}
if ($desktop eq 'gnome') {
if ($desktop eq 'gnome' && get_var('VERSION') ne 'eln') {
# Run this test to check if required application have registered.
autotest::loadtest "tests/workstation_core_applications.pm";
}

View file

@ -0,0 +1,19 @@
{
"area": [
{
"width": 161,
"xpos": 265,
"click_point": {
"ypos": 10.5,
"xpos": 14.5
},
"ypos": 608,
"type": "match",
"height": 21
}
],
"properties": [],
"tags": [
"anaconda_webui_allow_root"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View file

@ -0,0 +1,19 @@
{
"area": [
{
"width": 141,
"xpos": 269,
"height": 21,
"type": "match",
"ypos": 167,
"click_point": {
"ypos": 10.5,
"xpos": 10.5
}
}
],
"properties": [],
"tags": [
"anaconda_webui_no_local_account"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

View file

@ -0,0 +1,16 @@
{
"area": [
{
"width": 40,
"xpos": 563,
"type": "match",
"height": 17,
"ypos": 329
}
],
"properties": [],
"tags": [
"anaconda_install_user_created",
"LANGUAGE-french"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View file

@ -0,0 +1,20 @@
{
"area": [
{
"xpos": 270,
"width": 166,
"click_point": {
"ypos": 10.5,
"xpos": 11.5
},
"height": 21,
"type": "match",
"ypos": 638
}
],
"properties": [],
"tags": [
"LANGUAGE-french",
"anaconda_webui_allow_root"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

View file

@ -0,0 +1,20 @@
{
"area": [
{
"ypos": 167,
"type": "match",
"height": 21,
"click_point": {
"xpos": 10.5,
"ypos": 10.5
},
"width": 141,
"xpos": 269
}
],
"properties": [],
"tags": [
"LANGUAGE-french",
"anaconda_webui_no_local_account"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

View file

@ -0,0 +1,20 @@
{
"area": [
{
"click_point": {
"xpos": 10.5,
"ypos": 10.5
},
"ypos": 609,
"type": "match",
"height": 21,
"width": 178,
"xpos": 271
}
],
"properties": [],
"tags": [
"LANGUAGE-japanese",
"anaconda_webui_allow_root"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

View file

@ -0,0 +1,17 @@
{
"area": [
{
"ypos": 126,
"height": 25,
"type": "match",
"width": 103,
"xpos": 274
}
],
"properties": [],
"tags": [
"LANGUAGE-japanese",
"_ANACONDA_WEBUI",
"anaconda_webui_datetime"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

View file

@ -0,0 +1,20 @@
{
"area": [
{
"xpos": 271,
"width": 223,
"height": 21,
"type": "match",
"ypos": 638,
"click_point": {
"xpos": 10.5,
"ypos": 10.5
}
}
],
"properties": [],
"tags": [
"LANGUAGE-russian",
"anaconda_webui_allow_root"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

View file

@ -0,0 +1,20 @@
{
"area": [
{
"xpos": 295,
"ypos": 261,
"width": 259,
"height": 41,
"type": "match",
"click_point": {
"xpos": 208.5,
"ypos": 19.5
}
}
],
"properties": [],
"tags": [
"LANGUAGE-russian",
"anaconda_webui_createuser_name"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

View file

@ -0,0 +1,17 @@
{
"area": [
{
"xpos": 273,
"ypos": 129,
"width": 123,
"height": 24,
"type": "match"
}
],
"properties": [],
"tags": [
"LANGUAGE-russian",
"_ANACONDA_WEBUI",
"anaconda_webui_datetime"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View file

@ -0,0 +1,20 @@
{
"area": [
{
"height": 21,
"type": "match",
"ypos": 167,
"click_point": {
"xpos": 10.5,
"ypos": 10.5
},
"xpos": 269,
"width": 235
}
],
"properties": [],
"tags": [
"LANGUAGE-russian",
"anaconda_webui_no_local_account"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

View file

@ -0,0 +1,16 @@
{
"area": [
{
"xpos": 295,
"ypos": 247,
"width": 73,
"height": 19,
"type": "match"
}
],
"properties": [],
"tags": [
"LANGUAGE-japanese",
"anaconda_webui_createuser_name"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"width": 73,
"xpos": 74,
"ypos": 577,
"type": "match",
"height": 18
}
],
"properties": [],
"tags": [
"anaconda_webui_custom_fs_efi_filesystem"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"width": 38,
"xpos": 76,
"height": 16,
"type": "match",
"ypos": 499
}
],
"properties": [],
"tags": [
"anaconda_webui_custom_fs_ext4"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"ypos": 472,
"type": "match",
"height": 18,
"width": 28,
"xpos": 76
}
],
"properties": [],
"tags": [
"anaconda_webui_custom_fs_xfs"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

View file

@ -0,0 +1,18 @@
{
"area": [
{
"ypos": 329,
"type": "match",
"height": 17,
"width": 45,
"xpos": 563
}
],
"properties": [],
"tags": [
"LANGUAGE-arabic",
"LANGUAGE-japanese",
"LANGUAGE-russian",
"anaconda_install_user_created"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 552,
"ypos": 356,
"width": 78,
"height": 108,
"type": "match"
}
],
"properties": [],
"tags": [
"eln_background"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

View file

@ -0,0 +1,16 @@
{
"area": [
{
"xpos": 546,
"ypos": 350,
"width": 82,
"height": 110,
"type": "match"
}
],
"properties": [],
"tags": [
"eln_background",
"eln_background_dark"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 476,
"ypos": 646,
"width": 63,
"height": 17,
"type": "match"
}
],
"properties": [],
"tags": [
"xfreerdp_certificate_confirm"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

View file

@ -0,0 +1,18 @@
{
"area": [
{
"xpos": 846,
"width": 32,
"type": "match",
"height": 30,
"ypos": 289
}
],
"properties": [],
"tags": [
"DESKTOP-gnome",
"browser_launcher",
"firefox_launcher",
"apps_menu_firefox"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"type": "match",
"height": 28,
"ypos": 407,
"xpos": 147,
"width": 27
}
],
"properties": [],
"tags": [
"apps_menu_system"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"width": 30,
"xpos": 847,
"ypos": 288,
"type": "match",
"height": 16
}
],
"properties": [],
"tags": [
"apps_menu_utilities"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"width": 173,
"xpos": 10,
"ypos": 172,
"type": "match",
"height": 34
}
],
"properties": [],
"tags": [
"calc_help_factorial"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"ypos": 170,
"type": "match",
"height": 44,
"width": 360,
"xpos": 8
}
],
"properties": [],
"tags": [
"calc_help_keyboard"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"width": 117,
"xpos": 9,
"height": 20,
"type": "match",
"ypos": 125
}
],
"properties": [],
"tags": [
"calc_help_main_view"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"ypos": 574,
"type": "match",
"height": 25,
"width": 87,
"xpos": 6
}
],
"properties": [],
"tags": [
"calc_help_using_factorial"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 8,
"width": 161,
"ypos": 322,
"height": 25,
"type": "match"
}
],
"properties": [],
"tags": [
"calc_help_using_keyboard"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"ypos": 124,
"height": 59,
"type": "match",
"width": 180,
"xpos": 5
}
],
"properties": [],
"tags": [
"clocks_help_shown"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"ypos": 176,
"height": 166,
"type": "match",
"xpos": 59,
"width": 159
}
],
"properties": [],
"tags": [
"fonts_font_found"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

View file

@ -10,6 +10,6 @@
],
"properties": [],
"tags": [
"fonts_liberation_font_found"
"fonts_font_found"
]
}
}

View file

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Before After
Before After

View file

@ -12,4 +12,4 @@
"tags": [
"panel_area_today"
]
}
}

View file

@ -0,0 +1,15 @@
{
"area": [
{
"ypos": 286,
"height": 104,
"type": "match",
"xpos": 467,
"width": 90
}
],
"properties": [],
"tags": [
"panel_screen_locked"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"width": 145,
"xpos": 10,
"type": "match",
"height": 18,
"ypos": 125
}
],
"properties": [],
"tags": [
"gte_help_bread_main"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"width": 91,
"xpos": 520,
"ypos": 281,
"type": "match",
"height": 21
}
],
"properties": [],
"tags": [
"gte_help_files"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"height": 43,
"type": "match",
"ypos": 172,
"xpos": 12,
"width": 193
}
],
"properties": [],
"tags": [
"gte_help_open_file"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 5,
"width": 162,
"height": 21,
"type": "match",
"ypos": 477
}
],
"properties": [],
"tags": [
"gte_help_search"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"ypos": 173,
"type": "match",
"height": 40,
"width": 351,
"xpos": 10
}
],
"properties": [],
"tags": [
"gte_help_search_replace"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 67,
"width": 348,
"ypos": 146,
"type": "match",
"height": 32
}
],
"properties": [],
"tags": [
"gte_help_shown"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"type": "match",
"height": 17,
"ypos": 203,
"width": 39,
"xpos": 204
}
],
"properties": [],
"tags": [
"gte_line_word"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"xpos": 521,
"width": 129,
"height": 24,
"type": "match",
"ypos": 281
}
],
"properties": [],
"tags": [
"loupe_help_image_view"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"type": "match",
"height": 39,
"ypos": 147,
"xpos": 8,
"width": 310
}
],
"properties": [],
"tags": [
"loupe_help_shown"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"ypos": 204,
"height": 39,
"type": "match",
"width": 286,
"xpos": 9
}
],
"properties": [],
"tags": [
"loupe_help_view_shown"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"width": 59,
"xpos": 792,
"ypos": 511,
"type": "match",
"height": 204
}
],
"properties": [],
"tags": [
"loupe_img_info"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"ypos": 172,
"height": 36,
"type": "match",
"width": 430,
"xpos": 12
}
],
"properties": [],
"tags": [
"nautilus_browse_shown"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"width": 102,
"xpos": 7,
"height": 19,
"type": "match",
"ypos": 310
}
],
"properties": [],
"tags": [
"nautilus_help_browse_files"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"ypos": 651,
"height": 18,
"type": "match",
"width": 113,
"xpos": 175
}
],
"properties": [],
"tags": [
"nautilus_help_search_file"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"width": 394,
"xpos": 9,
"ypos": 171,
"height": 41,
"type": "match"
}
],
"properties": [],
"tags": [
"nautilus_help_shown"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"height": 45,
"type": "match",
"ypos": 167,
"xpos": 8,
"width": 272
}
],
"properties": [],
"tags": [
"nautilus_search_file_shown"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

View file

@ -0,0 +1,15 @@
{
"area": [
{
"height": 44,
"type": "match",
"ypos": 27,
"width": 71,
"xpos": 470
}
],
"properties": [],
"tags": [
"calculator_tiled_left"
]
}

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