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

Francois Gouget fgouget at codeweavers.com
Mon Nov 28 04:37:23 CST 2011


---
 dlls/kernel32/tests/sync.c |   16 ++++++++++++++--
 1 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/dlls/kernel32/tests/sync.c b/dlls/kernel32/tests/sync.c
index 07bc2ca..0774b9f 100644
--- a/dlls/kernel32/tests/sync.c
+++ b/dlls/kernel32/tests/sync.c
@@ -647,8 +647,8 @@ 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;
@@ -674,6 +674,17 @@ 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,
+                                 10000, 0);
+    ok(ret, "CreateTimerQueueTimer\n");
+    ok(t0 != NULL, "CreateTimerQueueTimer\n");
+    ret = pDeleteTimerQueueTimer(q, t0, NULL);
+    ok(!ret && GetLastError() == ERROR_IO_PENDING,
+        "DeleteTimerQueueTimer ret=%d le=%u\n", ret, GetLastError());
+
     /* Called once.  */
     t1 = NULL;
     n1 = 0;
@@ -727,6 +738,7 @@ static void test_timer_queue(void)
 
     ret = pDeleteTimerQueueEx(q, INVALID_HANDLE_VALUE);
     ok(ret, "DeleteTimerQueueEx\n");
+    ok(n0 == 0, "Timer callback 0\n");
     ok(n1 == 1, "Timer callback 1\n");
     ok(n2 < n3, "Timer callback 2 should be much slower than 3\n");
     ok(n4 == 0, "Timer callback 4\n");
-- 
1.7.7.1




More information about the wine-patches mailing list