Alexandre Julliard : user32/tests: Fix the cursor tests on Win9x.

Alexandre Julliard julliard at winehq.org
Fri Nov 21 06:54:37 CST 2008


Module: wine
Branch: master
Commit: 4afb1c54c082b386a0afd1529ecf0ae8e5f8d530
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=4afb1c54c082b386a0afd1529ecf0ae8e5f8d530

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Thu Nov 20 18:09:10 2008 +0100

user32/tests: Fix the cursor tests on Win9x.

---

 dlls/user32/tests/cursoricon.c |   39 ++++++++++++++++++++-------------------
 1 files changed, 20 insertions(+), 19 deletions(-)

diff --git a/dlls/user32/tests/cursoricon.c b/dlls/user32/tests/cursoricon.c
index 36f5e98..5d1cf2b 100644
--- a/dlls/user32/tests/cursoricon.c
+++ b/dlls/user32/tests/cursoricon.c
@@ -76,7 +76,7 @@ static LRESULT CALLBACK callback_child(HWND hwnd, UINT msg, WPARAM wParam, LPARA
             SetLastError(0xdeadbeef);
             ret = DestroyCursor((HCURSOR) lParam);
             error = GetLastError();
-            todo_wine ok(!ret, "DestroyCursor on the active cursor succeeded.\n");
+            todo_wine ok(!ret || broken(ret) /* win9x */, "DestroyCursor on the active cursor succeeded.\n");
             ok(error == ERROR_DESTROY_OBJECT_OF_OTHER_THREAD ||
                error == 0xdeadbeef,  /* vista */
                 "Last error: %u\n", error);
@@ -983,25 +983,26 @@ static void test_DestroyCursor(void)
 
     SetLastError(0xdeadbeef);
     ret = DestroyCursor(cursor);
-    ok(!ret, "DestroyCursor on the active cursor succeeded\n");
+    ok(!ret || broken(ret)  /* succeeds on win9x */, "DestroyCursor on the active cursor succeeded\n");
     error = GetLastError();
     ok(error == 0xdeadbeef, "Last error: %u\n", error);
-
-    cursor2 = GetCursor();
-    ok(cursor2 == cursor, "Active was set to %p when trying to destroy it\n", cursor2);
-
-    SetCursor(NULL);
-
-    /* Trying to destroy the cursor properly fails now with
-     * ERROR_INVALID_CURSOR_HANDLE.  This happens because we called
-     * DestroyCursor() 2+ times after calling SetCursor().  The calls to
-     * GetCursor() and SetCursor(NULL) in between make no difference. */
-    ret = DestroyCursor(cursor);
-    todo_wine {
-        ok(!ret, "DestroyCursor succeeded.\n");
-        error = GetLastError();
-        ok(error == ERROR_INVALID_CURSOR_HANDLE || error == 0xdeadbeef, /* vista */
-           "Last error: 0x%08x\n", error);
+    if (!ret)
+    {
+        cursor2 = GetCursor();
+        ok(cursor2 == cursor, "Active was set to %p when trying to destroy it\n", cursor2);
+        SetCursor(NULL);
+
+        /* Trying to destroy the cursor properly fails now with
+         * ERROR_INVALID_CURSOR_HANDLE.  This happens because we called
+         * DestroyCursor() 2+ times after calling SetCursor().  The calls to
+         * GetCursor() and SetCursor(NULL) in between make no difference. */
+        ret = DestroyCursor(cursor);
+        todo_wine {
+            ok(!ret, "DestroyCursor succeeded.\n");
+            error = GetLastError();
+            ok(error == ERROR_INVALID_CURSOR_HANDLE || error == 0xdeadbeef, /* vista */
+               "Last error: 0x%08x\n", error);
+        }
     }
 
     DeleteObject(cursorInfo.hbmMask);
@@ -1012,7 +1013,7 @@ static void test_DestroyCursor(void)
 
     SetLastError(0xdeadbeef);
     ret = DestroyCursor(cursor);
-    ok(ret, "DestroyCursor on the active cursor failed.\n");
+    ok(ret || broken(!ret) /* fails on win9x */, "DestroyCursor on the active cursor failed.\n");
     error = GetLastError();
     ok(error == 0xdeadbeef, "Last error: 0x%08x\n", error);
 




More information about the wine-cvs mailing list