tests: warp the pointer to in multi-monitor tests to avoid flaky tests

This commit is contained in:
Michael Stapelberg 2012-04-09 14:48:43 +02:00
parent 983ba656fc
commit 1bb165a29a
3 changed files with 13 additions and 0 deletions

View File

@ -594,6 +594,7 @@ Con* workspace_prev_on_output(void) {
Con *current = con_get_workspace(focused); Con *current = con_get_workspace(focused);
Con *prev = NULL; Con *prev = NULL;
Con *output = con_get_output(focused); Con *output = con_get_output(focused);
DLOG("output = %s\n", output->name);
if (current->num == -1) { if (current->num == -1) {
/* If named workspace, find previous named workspace. */ /* If named workspace, find previous named workspace. */

View File

@ -28,6 +28,9 @@ sub focused_output {
return $output->{name}; return $output->{name};
} }
$x->root->warp_pointer(0, 0);
sync_with_i3;
is(focused_output, 'fake-0', 'focus on first output'); is(focused_output, 'fake-0', 'focus on first output');
cmd 'focus output right'; cmd 'focus output right';

View File

@ -18,6 +18,9 @@ my $pid = launch_with_config($config);
# Setup workspaces so that they stay open (with an empty container). # Setup workspaces so that they stay open (with an empty container).
################################################################################ ################################################################################
$x->root->warp_pointer(0, 0);
sync_with_i3;
is(focused_ws, '1', 'starting on workspace 1'); is(focused_ws, '1', 'starting on workspace 1');
# ensure workspace 1 stays open # ensure workspace 1 stays open
open_window; open_window;
@ -66,6 +69,12 @@ is(focused_ws, '1', 'workspace 1 focused');
cmd 'workspace 2'; cmd 'workspace 2';
# XXX: This is to avoid EnterNotifies changing the focus. Not sure why they
# appear sometimes in the first place. Only happens when running the full
# testsuite.
$x->root->warp_pointer(1025, 0);
sync_with_i3;
cmd 'workspace prev_on_output'; cmd 'workspace prev_on_output';
is(focused_ws, '2', 'workspace 2 focused'); is(focused_ws, '2', 'workspace 2 focused');