Francois Gouget : kernel32/tests: Test deleting a timer right after creating it.

Alexandre Julliard julliard at winehq.org
Tue Jul 3 10:58:25 CDT 2012


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

Author: Francois Gouget <fgouget at codeweavers.com>
Date:   Tue Jul  3 10:03:07 2012 +0200

kernel32/tests: Test deleting a timer right after creating it.

---

 dlls/kernel32/tests/sync.c |   20 +++++++++++++++++---
 1 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/dlls/kernel32/tests/sync.c b/dlls/kernel32/tests/sync.c
index 5cf5269..4068b22 100644
--- a/dlls/kernel32/tests/sync.c
+++ b/dlls/kernel32/tests/sync.c
@@ -704,11 +704,11 @@ static void CALLBACK timer_queue_cb6(PVOID p, BOOLEAN timedOut)
 
 static void test_timer_queue(void)
 {
-    HANDLE q, t1, t2, t3, t4, t5;
-    int n1, n2, n3, n4, n5;
+    HANDLE q, t0, t1, t2, t3, t4, t5;
+    int n0, n1, n2, n3, n4, n5;
     struct timer_queue_data1 d1, d2, d3, d4;
     HANDLE e, et1, et2;
-    BOOL ret;
+    BOOL ret, ret0;
 
     if (!pChangeTimerQueueTimer || !pCreateTimerQueue || !pCreateTimerQueueTimer
         || !pDeleteTimerQueueEx || !pDeleteTimerQueueTimer)
@@ -731,6 +731,18 @@ static void test_timer_queue(void)
     q = pCreateTimerQueue();
     ok(q != NULL, "CreateTimerQueue\n");
 
+    /* Not called. */
+    t0 = NULL;
+    n0 = 0;
+    ret = pCreateTimerQueueTimer(&t0, q, timer_queue_cb1, &n0, 0,
+                                 300, 0);
+    ok(ret, "CreateTimerQueueTimer\n");
+    ok(t0 != NULL, "CreateTimerQueueTimer\n");
+    ret0 = pDeleteTimerQueueTimer(q, t0, NULL);
+    ok((!ret0 && GetLastError() == ERROR_IO_PENDING) ||
+       broken(ret0), /* Win 2000 & XP & 2003 */
+       "DeleteTimerQueueTimer ret=%d le=%u\n", ret0, GetLastError());
+
     /* Called once.  */
     t1 = NULL;
     n1 = 0;
@@ -784,6 +796,8 @@ static void test_timer_queue(void)
 
     ret = pDeleteTimerQueueEx(q, INVALID_HANDLE_VALUE);
     ok(ret, "DeleteTimerQueueEx\n");
+    todo_wine
+    ok(n0 == 1 || broken(ret0 && n0 == 0), "Timer callback 0 expected 1 got %d\n", n0);
     ok(n1 == 1, "Timer callback 1 expected 1 got %d\n", n1);
     ok(n2 < n3, "Timer callback 2 & 3 expected %d < %d\n", n2, n3);
     ok(n4 == 0, "Timer callback 4 expected 0 got %d\n", n4);




More information about the wine-cvs mailing list