mirror of
https://gitlab.freedesktop.org/wayland/weston.git
synced 2026-04-20 15:20:45 +02:00
tests: fix the cursor race in internal-screenshot
This fix also depends on "compositor-headless: do not create a seat". If we lose the race against weston-desktop-shell setting cursors, which is very rare, we get a cursor image in the screenshot, causing the test to fail. This is now fixed by moving the (remaining) cursor out of the way. Arguably we should have better solutions for this, but that is another story. This is a stop-gap measure we can copy also in new screenshooting tests. v2: Remove the example code for how to trigger the race, and rewrite the big comment. Cc: Derek Foreman <derekf@osg.samsung.com> Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk> Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
This commit is contained in:
parent
b5e3ea218b
commit
e651bb021e
1 changed files with 18 additions and 0 deletions
|
|
@ -68,6 +68,24 @@ TEST(internal_screenshot)
|
|||
assert(client);
|
||||
surface = client->surface->wl_surface;
|
||||
|
||||
/*
|
||||
* We are racing our screenshooting against weston-desktop-shell
|
||||
* setting the cursor. If w-d-s wins, our screenshot will have a cursor
|
||||
* shown, which makes the image comparison fail. Our window and the
|
||||
* default pointer position are accidentally causing an overlap that
|
||||
* intersects our test clip rectangle.
|
||||
*
|
||||
* w-d-s wins very rarely though, so the race is easy to miss. You can
|
||||
* make it happen by putting a delay before the call to
|
||||
* create_client_and_test_surface().
|
||||
*
|
||||
* The weston_test_move_pointer() below makes the race irrelevant, as
|
||||
* the cursor won't overlap with anything we care about.
|
||||
*/
|
||||
|
||||
/* Move the pointer away from the screenshot area. */
|
||||
weston_test_move_pointer(client->test->weston_test, 0, 0);
|
||||
|
||||
buf = create_shm_buffer(client, 100, 100, &pixels);
|
||||
draw_stuff(pixels, 100, 100);
|
||||
wl_surface_attach(surface, buf, 0, 0);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue