From ef2943d16682cb214a403d44f848181cc2fb04ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Sat, 29 Jan 2022 15:00:25 +0300 Subject: [PATCH] d3d9/tests: Ignore random testbot failures in test_cursor. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stefan Dösinger Signed-off-by: Henri Verbeet Signed-off-by: Alexandre Julliard --- dlls/d3d9/tests/device.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c index 2c909176c8e..7abf9ea3df2 100644 --- a/dlls/d3d9/tests/device.c +++ b/dlls/d3d9/tests/device.c @@ -1886,11 +1886,19 @@ static void test_cursor(void) IDirect3DSurface9_Release(cursor); + /* On the testbot the cursor handle does not behave as expected in rare situations, + * leading to random test failures. Either the cursor handle changes before we expect + * it to, or it doesn't change afterwards (or already changed before we read the + * initial handle?). I was not able to reproduce this on my own machines. Moving the + * mouse outside the window results in similar behavior. However, I tested various + * obvious failure causes: Was the mouse moved? Was the window hidden or moved? Is + * the window in the background? Neither of those applies. Making the window topmost + * or using a fullscreen device doesn't improve the test's reliability either. */ memset(&info, 0, sizeof(info)); info.cbSize = sizeof(info); ok(GetCursorInfo(&info), "GetCursorInfo failed\n"); ok(info.flags & (CURSOR_SHOWING|CURSOR_SUPPRESSED), "The gdi cursor is hidden (%08x)\n", info.flags); - ok(info.hCursor == cur, "The cursor handle is %p\n", info.hCursor); /* unchanged */ + ok(info.hCursor == cur || broken(1), "The cursor handle is %p\n", info.hCursor); /* unchanged */ /* Still hidden */ ret = IDirect3DDevice9_ShowCursor(device, TRUE); @@ -1904,7 +1912,7 @@ static void test_cursor(void) info.cbSize = sizeof(info); ok(GetCursorInfo(&info), "GetCursorInfo failed\n"); ok(info.flags & (CURSOR_SHOWING|CURSOR_SUPPRESSED), "The gdi cursor is hidden (%08x)\n", info.flags); - ok(info.hCursor != cur, "The cursor handle is %p\n", info.hCursor); + ok(info.hCursor != cur || broken(1), "The cursor handle is %p\n", info.hCursor); /* Cursor dimensions must all be powers of two */ for (test_idx = 0; test_idx < ARRAY_SIZE(cursor_sizes); ++test_idx)