Signed-off-by: Rémi Bernon rbernon@codeweavers.com ---
* PATCH 1/4 should help with these spurious failures:
input.c:2789: Test failed: 15: expected WM_INPUT message input.c:2792: Test failed: 15: expected RIM_INPUT message
The root cause is the desktop window getting foreground when we try to change focus from the thread window back to the main window that is created topmost. X11 focus out / focus in events receiving order sometimes make winex11.drv decide to give the desktop window focus and this ends up with the WM_INPUT messages not being delivered.
* PATCH 2/4 just skips the recurrent failure on Chinese:China locale.
* PATCH 3/4 and PATCH 4/4 which also (Superseding 205693) are trying to fix the following spurious failures:
input.c:2162: Test failed: GetRawInputBuffer returned 4 input.c:2157: Test failed: GetRawInputBuffer returned unexpected size: 0 input.c:2162: Test failed: GetRawInputBuffer returned 0 input.c:2163: Test failed: GetRawInputBuffer returned unexpected size: 0 input.c:2164: Test failed: Unexpected rawinput data: 0 input.c:2165: Test failed: Unexpected rawinput data: 0 input.c:2166: Test failed: Unexpected rawinput data: 0 input.c:2224: Test failed: GetRawInputData succeeded input.c:2225: Test failed: GetRawInputData returned deadbeef input.c:2338: Test failed: Spurious WM_INPUT messages
I've got no idea if they really do, as I'm not yet able to reproduce them consistently when submitting the patches manually. Submitting patches from the M-L seem to trigger the failures more reliably. So if they don't I guess they could just be ignored.
dlls/user32/tests/input.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/dlls/user32/tests/input.c b/dlls/user32/tests/input.c index 3d4f0d03d0d..8c67fc67cb3 100644 --- a/dlls/user32/tests/input.c +++ b/dlls/user32/tests/input.c @@ -2758,6 +2758,10 @@ static void test_rawinput(const char* argv0) { case 14: case 15: + DestroyWindow(hwnd); + hwnd = CreateWindowA("static", "static", WS_VISIBLE | WS_POPUP, + pt.x - 50, pt.y - 50, 100, 100, 0, NULL, NULL, NULL); + ok(hwnd != 0, "CreateWindow failed\n"); SetWindowPos(hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE); SetForegroundWindow(hwnd); empty_message_queue();