Detlef Riekenberg : kernel32/tests:
DuplicateTokenEx is not present on all platforms.
Alexandre Julliard
julliard at wine.codeweavers.com
Sat Mar 17 14:35:21 CDT 2007
Module: wine
Branch: master
Commit: 439b852dcac6856160a7bd451b2edfb96676b7f4
URL: http://source.winehq.org/git/wine.git/?a=commit;h=439b852dcac6856160a7bd451b2edfb96676b7f4
Author: Detlef Riekenberg <wine.dev at web.de>
Date: Fri Mar 16 22:37:46 2007 +0100
kernel32/tests: DuplicateTokenEx is not present on all platforms.
---
dlls/kernel32/tests/pipe.c | 15 ++++++++++++++-
1 files changed, 14 insertions(+), 1 deletions(-)
diff --git a/dlls/kernel32/tests/pipe.c b/dlls/kernel32/tests/pipe.c
index 2356a96..0cbcafc 100644
--- a/dlls/kernel32/tests/pipe.c
+++ b/dlls/kernel32/tests/pipe.c
@@ -36,6 +36,9 @@
#define NB_SERVER_LOOPS 8
static HANDLE alarm_event;
+static BOOL (WINAPI *pDuplicateTokenEx)(HANDLE,DWORD,LPSECURITY_ATTRIBUTES,
+ SECURITY_IMPERSONATION_LEVEL,TOKEN_TYPE,PHANDLE);
+
static void test_CreateNamedPipe(int pipemode)
{
@@ -907,7 +910,7 @@ static HANDLE make_impersonation_token(DWORD Access, SECURITY_IMPERSONATION_LEVE
ret = OpenProcessToken(GetCurrentProcess(), TOKEN_DUPLICATE, &ProcessToken);
ok(ret, "OpenProcessToken failed with error %d\n", GetLastError());
- ret = DuplicateTokenEx(ProcessToken, Access, NULL, ImpersonationLevel, TokenImpersonation, &Token);
+ ret = pDuplicateTokenEx(ProcessToken, Access, NULL, ImpersonationLevel, TokenImpersonation, &Token);
ok(ret, "DuplicateToken failed with error %d\n", GetLastError());
CloseHandle(ProcessToken);
@@ -1196,6 +1199,11 @@ static void test_impersonation(void)
HANDLE hProcessToken;
BOOL ret;
+ if( !pDuplicateTokenEx ) {
+ skip("DuplicateTokenEx not found\n");
+ return;
+ }
+
ret = OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hProcessToken);
if (!ret)
{
@@ -1246,6 +1254,11 @@ static void test_impersonation(void)
START_TEST(pipe)
{
+ HMODULE hmod;
+
+ hmod = GetModuleHandle("advapi32.dll");
+ pDuplicateTokenEx = (void *) GetProcAddress(hmod, "DuplicateTokenEx");
+
trace("test 1 of 7:\n");
if (test_DisconnectNamedPipe())
return;
More information about the wine-cvs
mailing list