Change up 'clean desktop' check again (use a util function)
Well, that OCR needle isn't working out so great, as it seems to match when it shouldn't: https://openqa.fedoraproject.org/tests/119217#step/_graphical_wait_login/5 So let's try another approach. Ditch the OCR needle and have a function for checking we're at a clean desktop. It does the normal needle match, but if we're on GNOME, it also tries hitting alt+f1 and seeing if we're at the overview; if so, it hits alt+f1 again (to go back to the desktop) and returns.
This commit is contained in:
parent
9cc8b594fe
commit
aca7de2861
40
lib/utils.pm
40
lib/utils.pm
@ -7,7 +7,7 @@ use Exporter;
|
|||||||
|
|
||||||
use lockapi;
|
use lockapi;
|
||||||
use testapi;
|
use testapi;
|
||||||
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 get_milestone boot_decrypt check_release menu_launch_type start_cockpit repo_setup gnome_initial_setup anaconda_create_user/;
|
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 get_milestone boot_decrypt check_release menu_launch_type start_cockpit repo_setup gnome_initial_setup anaconda_create_user check_desktop_clean/;
|
||||||
|
|
||||||
sub run_with_error_check {
|
sub run_with_error_check {
|
||||||
my ($func, $error_screen) = @_;
|
my ($func, $error_screen) = @_;
|
||||||
@ -482,3 +482,41 @@ sub anaconda_create_user {
|
|||||||
assert_and_click "anaconda_spoke_done";
|
assert_and_click "anaconda_spoke_done";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub check_desktop_clean {
|
||||||
|
# Check we're at a 'clean' desktop. This used to be a simple
|
||||||
|
# needle check, but Rawhide's default desktop is now one which
|
||||||
|
# changes over time, and the GNOME top bar is now translucent
|
||||||
|
# by default; together these changes mean it's impossible to
|
||||||
|
# make a reliable needle, so we need something more tricksy to
|
||||||
|
# cover that case. 'tries' is the amount of check cycles to run
|
||||||
|
# before giving up and failing; each cycle should take ~3 secs.
|
||||||
|
my %args = (
|
||||||
|
tries => 10,
|
||||||
|
@_
|
||||||
|
);
|
||||||
|
foreach my $i (1..$args{tries}) {
|
||||||
|
# we still *do* the needle check, for all cases it covers
|
||||||
|
return if (check_screen "graphical_desktop_clean", 1);
|
||||||
|
# now do the special GNOME case
|
||||||
|
if (get_var("DESKTOP") eq "gnome") {
|
||||||
|
send_key "alt-f1";
|
||||||
|
if (check_screen "overview_app_grid", 2) {
|
||||||
|
send_key "alt-f1";
|
||||||
|
wait_still_screen 3;
|
||||||
|
# go back to the desktop, if we're still at the app
|
||||||
|
# grid (can be a bit fuzzy depending on response lag)
|
||||||
|
while (check_screen "overview_app_grid", 1) {
|
||||||
|
send_key "alt-f1";
|
||||||
|
wait_still_screen 3;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
# to keep the timing equal
|
||||||
|
sleep 2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
die "Clean desktop not reached!";
|
||||||
|
}
|
||||||
|
@ -1,25 +0,0 @@
|
|||||||
{
|
|
||||||
"area": [
|
|
||||||
{
|
|
||||||
"height": 15,
|
|
||||||
"type": "ocr",
|
|
||||||
"width": 67,
|
|
||||||
"xpos": 9,
|
|
||||||
"ypos": 6
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"height": 1,
|
|
||||||
"type": "match",
|
|
||||||
"width": 1,
|
|
||||||
"xpos": 946,
|
|
||||||
"ypos": 12
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"properties": [],
|
|
||||||
"tags": [
|
|
||||||
"DESKTOP-gnome",
|
|
||||||
"ENV-DISTRI-fedora",
|
|
||||||
"LANGUAGE-english",
|
|
||||||
"graphical_desktop_clean"
|
|
||||||
]
|
|
||||||
}
|
|
Binary file not shown.
Before Width: | Height: | Size: 649 KiB |
16
needles/gnome/overview_app_grid.json
Normal file
16
needles/gnome/overview_app_grid.json
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
"area": [
|
||||||
|
{
|
||||||
|
"height": 45,
|
||||||
|
"type": "match",
|
||||||
|
"width": 45,
|
||||||
|
"xpos": 24,
|
||||||
|
"ypos": 657
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"properties": [],
|
||||||
|
"tags": [
|
||||||
|
"DESKTOP-gnome",
|
||||||
|
"overview_app_grid"
|
||||||
|
]
|
||||||
|
}
|
BIN
needles/gnome/overview_app_grid.png
Normal file
BIN
needles/gnome/overview_app_grid.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 466 KiB |
@ -26,7 +26,7 @@ sub run {
|
|||||||
send_key "esc";
|
send_key "esc";
|
||||||
send_key "esc";
|
send_key "esc";
|
||||||
send_key "esc";
|
send_key "esc";
|
||||||
assert_screen "graphical_desktop_clean";
|
check_desktop_clean;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -89,7 +89,7 @@ sub run {
|
|||||||
# Move the mouse somewhere it won't highlight the match areas
|
# Move the mouse somewhere it won't highlight the match areas
|
||||||
mouse_set(300, 200);
|
mouse_set(300, 200);
|
||||||
# KDE can take ages to start up
|
# KDE can take ages to start up
|
||||||
assert_screen "graphical_desktop_clean", 120;
|
check_desktop_clean(tries=>40);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ use utils;
|
|||||||
|
|
||||||
sub run {
|
sub run {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
assert_screen 'graphical_desktop_clean';
|
check_desktop_clean;
|
||||||
send_key 'alt-f1';
|
send_key 'alt-f1';
|
||||||
# wait out animations
|
# wait out animations
|
||||||
wait_still_screen 2;
|
wait_still_screen 2;
|
||||||
|
@ -65,7 +65,7 @@ sub run {
|
|||||||
type_very_safely get_var("USER_PASSWORD", "weakpassword");
|
type_very_safely get_var("USER_PASSWORD", "weakpassword");
|
||||||
send_key 'ret';
|
send_key 'ret';
|
||||||
}
|
}
|
||||||
assert_screen 'graphical_desktop_clean', 90;
|
check_desktop_clean(tries=>30);
|
||||||
# now, WE WAIT. this is just an unconditional wait - rather than
|
# now, WE WAIT. this is just an unconditional wait - rather than
|
||||||
# breaking if we see an update notification appear - so we catch
|
# breaking if we see an update notification appear - so we catch
|
||||||
# things that crash a few minutes after startup, etc.
|
# things that crash a few minutes after startup, etc.
|
||||||
|
@ -5,7 +5,7 @@ use utils;
|
|||||||
|
|
||||||
sub run {
|
sub run {
|
||||||
my $self=shift;
|
my $self=shift;
|
||||||
assert_screen 'graphical_desktop_clean';
|
check_desktop_clean;
|
||||||
menu_launch_type('terminal');
|
menu_launch_type('terminal');
|
||||||
wait_still_screen 5;
|
wait_still_screen 5;
|
||||||
# need to be root
|
# need to be root
|
||||||
|
Loading…
Reference in New Issue
Block a user