Detlef Riekenberg : kernel32/tests: Run the tests again on Win9x.
Alexandre Julliard
julliard at winehq.org
Tue Jul 22 09:35:49 CDT 2008
Module: wine
Branch: master
Commit: f8dea7ab2d43992e56fa1347fc77cc63d98e02b5
URL: http://source.winehq.org/git/wine.git/?a=commit;h=f8dea7ab2d43992e56fa1347fc77cc63d98e02b5
Author: Detlef Riekenberg <wine.dev at web.de>
Date: Mon Jul 21 17:42:41 2008 -0700
kernel32/tests: Run the tests again on Win9x.
---
dlls/kernel32/tests/sync.c | 44 ++++++++++++++++++++++++++++----------------
1 files changed, 28 insertions(+), 16 deletions(-)
diff --git a/dlls/kernel32/tests/sync.c b/dlls/kernel32/tests/sync.c
index 06b1e5c..48d472a 100644
--- a/dlls/kernel32/tests/sync.c
+++ b/dlls/kernel32/tests/sync.c
@@ -27,7 +27,11 @@
#include "wine/test.h"
+static HANDLE (WINAPI *pCreateTimerQueue)(void);
+static BOOL (WINAPI *pCreateTimerQueueTimer)(PHANDLE, HANDLE, WAITORTIMERCALLBACK,
+ PVOID, DWORD, DWORD, ULONG);
static HANDLE (WINAPI *pCreateWaitableTimerA)(SECURITY_ATTRIBUTES*,BOOL,LPCSTR);
+static BOOL (WINAPI *pDeleteTimerQueueEx)(HANDLE, HANDLE);
static HANDLE (WINAPI *pOpenWaitableTimerA)(DWORD,BOOL,LPCSTR);
static void test_signalandwait(void)
@@ -549,61 +553,66 @@ static void test_timer_queue(void)
HANDLE e;
BOOL ret;
+ if (!pCreateTimerQueue || !pCreateTimerQueueTimer || !pDeleteTimerQueueEx) {
+ skip("TimerQueue API not present\n");
+ return;
+ }
+
/* Test asynchronous deletion of the queue. */
- q = CreateTimerQueue();
+ q = pCreateTimerQueue();
todo_wine
ok(q != NULL, "CreateTimerQueue\n");
SetLastError(0xdeadbeef);
- ret = DeleteTimerQueueEx(q, NULL);
+ ret = pDeleteTimerQueueEx(q, NULL);
ok(!ret, "DeleteTimerQueueEx\n");
todo_wine
ok(GetLastError() == ERROR_IO_PENDING, "DeleteTimerQueueEx\n");
/* Test synchronous deletion of the queue and running timers. */
- q = CreateTimerQueue();
+ q = pCreateTimerQueue();
todo_wine
ok(q != NULL, "CreateTimerQueue\n");
/* Called once. */
t1 = NULL;
n1 = 0;
- ret = CreateTimerQueueTimer(&t1, q, timer_queue_cb1, &n1, 0,
- 0, 0);
+ ret = pCreateTimerQueueTimer(&t1, q, timer_queue_cb1, &n1, 0,
+ 0, 0);
ok(ret, "CreateTimerQueueTimer\n");
/* A slow one. */
t2 = NULL;
n2 = 0;
- ret = CreateTimerQueueTimer(&t2, q, timer_queue_cb1, &n2, 0,
- 100, 0);
+ ret = pCreateTimerQueueTimer(&t2, q, timer_queue_cb1, &n2, 0,
+ 100, 0);
ok(ret, "CreateTimerQueueTimer\n");
/* A fast one. */
t3 = NULL;
n3 = 0;
- ret = CreateTimerQueueTimer(&t3, q, timer_queue_cb1, &n3, 0,
- 10, 0);
+ ret = pCreateTimerQueueTimer(&t3, q, timer_queue_cb1, &n3, 0,
+ 10, 0);
ok(ret, "CreateTimerQueueTimer\n");
/* Start really late (it won't start). */
t4 = NULL;
n4 = 0;
- ret = CreateTimerQueueTimer(&t4, q, timer_queue_cb1, &n4, 10000,
- 10, 0);
+ ret = pCreateTimerQueueTimer(&t4, q, timer_queue_cb1, &n4, 10000,
+ 10, 0);
ok(ret, "CreateTimerQueueTimer\n");
/* Start soon, but delay so long it won't run again. */
t5 = NULL;
n5 = 0;
- ret = CreateTimerQueueTimer(&t5, q, timer_queue_cb1, &n5, 0,
- 10000, 0);
+ ret = pCreateTimerQueueTimer(&t5, q, timer_queue_cb1, &n5, 0,
+ 10000, 0);
ok(ret, "CreateTimerQueueTimer\n");
/* Give them a chance to do some work. */
Sleep(500);
- ret = DeleteTimerQueueEx(q, INVALID_HANDLE_VALUE);
+ ret = pDeleteTimerQueueEx(q, INVALID_HANDLE_VALUE);
todo_wine
{
ok(ret, "DeleteTimerQueueEx\n");
@@ -622,12 +631,12 @@ static void test_timer_queue(void)
return;
}
- q = CreateTimerQueue();
+ q = pCreateTimerQueue();
todo_wine
ok(q != NULL, "CreateTimerQueue\n");
SetLastError(0xdeadbeef);
- ret = DeleteTimerQueueEx(q, e);
+ ret = pDeleteTimerQueueEx(q, e);
ok(!ret, "DeleteTimerQueueEx\n");
todo_wine
{
@@ -641,7 +650,10 @@ static void test_timer_queue(void)
START_TEST(sync)
{
HMODULE hdll = GetModuleHandle("kernel32");
+ pCreateTimerQueue = (void*)GetProcAddress(hdll, "CreateTimerQueue");
+ pCreateTimerQueueTimer = (void*)GetProcAddress(hdll, "CreateTimerQueueTimer");
pCreateWaitableTimerA = (void*)GetProcAddress(hdll, "CreateWaitableTimerA");
+ pDeleteTimerQueueEx = (void*)GetProcAddress(hdll, "DeleteTimerQueueEx");
pOpenWaitableTimerA = (void*)GetProcAddress(hdll, "OpenWaitableTimerA");
test_signalandwait();
More information about the wine-cvs
mailing list