Zebediah Figura : user32/tests: Wait for the WM_CLIPBOARDUPDATE message to be received.

Alexandre Julliard julliard at winehq.org
Tue Jan 30 14:38:14 CST 2018


Module: wine
Branch: master
Commit: 318edcc94a24d7140d02b7965825c012d0303aab
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=318edcc94a24d7140d02b7965825c012d0303aab

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Mon Jan 29 16:16:16 2018 -0600

user32/tests: Wait for the WM_CLIPBOARDUPDATE message to be received.

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/user32/tests/clipboard.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/dlls/user32/tests/clipboard.c b/dlls/user32/tests/clipboard.c
index 4fd37fa..3d3ef8b 100644
--- a/dlls/user32/tests/clipboard.c
+++ b/dlls/user32/tests/clipboard.c
@@ -895,6 +895,7 @@ static UINT wm_renderformat;
 static UINT nb_formats;
 static BOOL cross_thread;
 static BOOL do_render_format;
+static HANDLE update_event;
 
 static LRESULT CALLBACK clipboard_wnd_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)
 {
@@ -953,6 +954,7 @@ static LRESULT CALLBACK clipboard_wnd_proc(HWND hwnd, UINT msg, WPARAM wp, LPARA
         ok( msg_flags == ISMEX_NOSEND, "WM_CLIPBOARDUPDATE wrong flags %x\n", msg_flags );
         EnterCriticalSection(&clipboard_cs);
         wm_clipboardupdate++;
+        SetEvent(update_event);
         LeaveCriticalSection(&clipboard_cs);
         break;
     case WM_USER:
@@ -1011,6 +1013,9 @@ static void check_messages_(int line, HWND win, UINT seq_diff, UINT draw, UINT u
         while (PeekMessageW( &msg, 0, 0, 0, PM_REMOVE )) DispatchMessageW( &msg );
     }
 
+    if (update && !broken(!pAddClipboardFormatListener))
+        ok(WaitForSingleObject(update_event, 1000) == WAIT_OBJECT_0, "wait failed\n");
+
     count = SendMessageA( win, WM_USER + 1, 0, 0 );
     ok_(__FILE__, line)(count == draw, "WM_DRAWCLIPBOARD %sreceived\n", draw ? "not " : "");
     count = SendMessageA( win, WM_USER + 2, 0, 0 );
@@ -1274,6 +1279,7 @@ static void test_messages(void)
     DWORD tid;
 
     InitializeCriticalSection(&clipboard_cs);
+    update_event = CreateEventW(NULL, FALSE, FALSE, NULL);
 
     memset(&cls, 0, sizeof(cls));
     cls.lpfnWndProc = clipboard_wnd_proc;




More information about the wine-cvs mailing list