Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
9c027606
Commit
9c027606
authored
Oct 12, 2010
by
André Hentschel
Committed by
Alexandre Julliard
Oct 13, 2010
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
setupapi/tests: Fix wow64 failures.
parent
6cbb8fc2
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
33 additions
and
17 deletions
+33
-17
devinst.c
dlls/setupapi/tests/devinst.c
+33
-17
No files found.
dlls/setupapi/tests/devinst.c
View file @
9c027606
...
...
@@ -31,8 +31,9 @@
#include "wine/test.h"
static
BOOL
is_wow64
;
/* function pointers */
static
HMODULE
hSetupAPI
;
static
HDEVINFO
(
WINAPI
*
pSetupDiCreateDeviceInfoList
)(
GUID
*
,
HWND
);
static
HDEVINFO
(
WINAPI
*
pSetupDiCreateDeviceInfoListExW
)(
GUID
*
,
HWND
,
PCWSTR
,
PVOID
);
static
BOOL
(
WINAPI
*
pSetupDiCreateDeviceInterfaceA
)(
HDEVINFO
,
PSP_DEVINFO_DATA
,
const
GUID
*
,
PCSTR
,
DWORD
,
PSP_DEVICE_INTERFACE_DATA
);
...
...
@@ -57,13 +58,15 @@ static BOOL (WINAPI *pSetupDiSetDeviceRegistryPropertyA)(HDEVINFO, PSP_DEVIN
static
BOOL
(
WINAPI
*
pSetupDiSetDeviceRegistryPropertyW
)(
HDEVINFO
,
PSP_DEVINFO_DATA
,
DWORD
,
const
BYTE
*
,
DWORD
);
static
BOOL
(
WINAPI
*
pSetupDiGetDeviceRegistryPropertyA
)(
HDEVINFO
,
PSP_DEVINFO_DATA
,
DWORD
,
PDWORD
,
PBYTE
,
DWORD
,
PDWORD
);
static
BOOL
(
WINAPI
*
pSetupDiGetDeviceRegistryPropertyW
)(
HDEVINFO
,
PSP_DEVINFO_DATA
,
DWORD
,
PDWORD
,
PBYTE
,
DWORD
,
PDWORD
);
static
BOOL
(
WINAPI
*
pIsWow64Process
)(
HANDLE
,
PBOOL
);
/* This is a unique guid for testing purposes */
static
GUID
guid
=
{
0x6a55b5a4
,
0x3f65
,
0x11db
,
{
0xb7
,
0x04
,
0x00
,
0x11
,
0x95
,
0x5c
,
0x2b
,
0xdb
}};
static
void
init_function_pointers
(
void
)
{
hSetupAPI
=
GetModuleHandleA
(
"setupapi.dll"
);
HMODULE
hSetupAPI
=
GetModuleHandleA
(
"setupapi.dll"
);
HMODULE
hKernel32
=
GetModuleHandleA
(
"kernel32.dll"
);
pSetupDiCreateDeviceInfoA
=
(
void
*
)
GetProcAddress
(
hSetupAPI
,
"SetupDiCreateDeviceInfoA"
);
pSetupDiCreateDeviceInfoW
=
(
void
*
)
GetProcAddress
(
hSetupAPI
,
"SetupDiCreateDeviceInfoW"
);
...
...
@@ -89,6 +92,7 @@ static void init_function_pointers(void)
pSetupDiSetDeviceRegistryPropertyW
=
(
void
*
)
GetProcAddress
(
hSetupAPI
,
"SetupDiSetDeviceRegistryPropertyW"
);
pSetupDiGetDeviceRegistryPropertyA
=
(
void
*
)
GetProcAddress
(
hSetupAPI
,
"SetupDiGetDeviceRegistryPropertyA"
);
pSetupDiGetDeviceRegistryPropertyW
=
(
void
*
)
GetProcAddress
(
hSetupAPI
,
"SetupDiGetDeviceRegistryPropertyW"
);
pIsWow64Process
=
(
void
*
)
GetProcAddress
(
hKernel32
,
"IsWow64Process"
);
}
static
void
change_reg_permissions
(
const
WCHAR
*
regkey
)
...
...
@@ -141,8 +145,12 @@ static BOOL remove_device(void)
SetLastError
(
0xdeadbeef
);
ret
=
pSetupDiCallClassInstaller
(
DIF_REMOVE
,
set
,
&
devInfo
);
todo_wine
ok
(
ret
,
"SetupDiCallClassInstaller(DIF_REMOVE...) failed: %08x
\n
"
,
GetLastError
());
if
(
is_wow64
)
todo_wine
ok
(
!
ret
&&
GetLastError
()
==
ERROR_IN_WOW64
,
"SetupDiCallClassInstaller(DIF_REMOVE...) succeeded: %08x
\n
"
,
GetLastError
());
else
todo_wine
ok
(
ret
,
"SetupDiCallClassInstaller(DIF_REMOVE...) failed: %08x
\n
"
,
GetLastError
());
SetLastError
(
0xdeadbeef
);
ok
(
pSetupDiDestroyDeviceInfoList
(
set
),
...
...
@@ -1007,8 +1015,8 @@ static void testDevRegKey(void)
/* Cleanup */
ret
=
remove_device
();
todo_wine
ok
(
ret
,
"Expected the device to be removed: %08x
\n
"
,
GetLastError
());
if
(
!
is_wow64
)
todo_wine
ok
(
ret
,
"Expected the device to be removed: %08x
\n
"
,
GetLastError
());
/* FIXME: Only do the RegDeleteKey, once Wine is fixed */
if
(
!
ret
)
...
...
@@ -1091,8 +1099,10 @@ static void testRegisterAndGetDetail(void)
{
static
const
char
path
[]
=
"
\\\\
?
\\
root#legacy_bogus#0000#{6a55b5a4-3f65-11db-b704-0011955c2bdb}"
;
static
const
char
path_wow64
[]
=
"
\\\\
?
\\
root#legacy_bogus#0001#{6a55b5a4-3f65-11db-b704-0011955c2bdb}"
;
static
const
char
path_w2k
[]
=
"
\\\\
?
\\
root#legacy_bogus#0000#{6a55b5a4-3f65-11db-b704-0011955c2bdb}
\\
"
;
"
\\\\
?
\\
root#legacy_bogus#0000#{6a55b5a4-3f65-11db-b704-0011955c2bdb}
\\
"
;
PSP_DEVICE_INTERFACE_DETAIL_DATA_A
detail
=
NULL
;
detail
=
HeapAlloc
(
GetProcessHeap
(),
0
,
dwSize
);
...
...
@@ -1106,10 +1116,13 @@ static void testRegisterAndGetDetail(void)
/* FIXME: This one only worked because old data wasn't removed properly. As soon
* as all the tests are cleaned up correctly this has to be (or should be) fixed
*/
todo_wine
ok
(
!
lstrcmpiA
(
path
,
detail
->
DevicePath
)
||
!
lstrcmpiA
(
path_w2k
,
detail
->
DevicePath
),
"Unexpected path %s
\n
"
,
detail
->
DevicePath
);
if
(
is_wow64
)
ok
(
!
lstrcmpiA
(
path_wow64
,
detail
->
DevicePath
),
"Unexpected path %s
\n
"
,
detail
->
DevicePath
);
else
todo_wine
ok
(
!
lstrcmpiA
(
path
,
detail
->
DevicePath
)
||
!
lstrcmpiA
(
path_w2k
,
detail
->
DevicePath
),
"Unexpected path %s
\n
"
,
detail
->
DevicePath
);
HeapFree
(
GetProcessHeap
(),
0
,
detail
);
}
}
...
...
@@ -1118,8 +1131,8 @@ static void testRegisterAndGetDetail(void)
/* Cleanup */
ret
=
remove_device
();
todo_wine
ok
(
ret
,
"Expected the device to be removed: %08x
\n
"
,
GetLastError
());
if
(
!
is_wow64
)
todo_wine
ok
(
ret
,
"Expected the device to be removed: %08x
\n
"
,
GetLastError
());
/* FIXME: Only do the RegDeleteKey, once Wine is fixed */
if
(
!
ret
)
...
...
@@ -1228,8 +1241,8 @@ static void testDeviceRegistryPropertyA(void)
pSetupDiDestroyDeviceInfoList
(
set
);
res
=
RegOpenKeyA
(
HKEY_LOCAL_MACHINE
,
bogus
,
&
key
);
todo_wine
ok
(
res
==
ERROR_FILE_NOT_FOUND
,
"Expected key to not exist
\n
"
);
if
(
!
is_wow64
)
todo_wine
ok
(
res
==
ERROR_FILE_NOT_FOUND
,
"Expected key to not exist
\n
"
);
/* FIXME: Remove when Wine is fixed */
if
(
res
==
ERROR_SUCCESS
)
{
...
...
@@ -1334,8 +1347,8 @@ static void testDeviceRegistryPropertyW(void)
pSetupDiDestroyDeviceInfoList
(
set
);
res
=
RegOpenKeyW
(
HKEY_LOCAL_MACHINE
,
bogus
,
&
key
);
todo_wine
ok
(
res
==
ERROR_FILE_NOT_FOUND
,
"Expected key to not exist
\n
"
);
if
(
!
is_wow64
)
todo_wine
ok
(
res
==
ERROR_FILE_NOT_FOUND
,
"Expected key to not exist
\n
"
);
/* FIXME: Remove when Wine is fixed */
if
(
res
==
ERROR_SUCCESS
)
{
...
...
@@ -1533,6 +1546,9 @@ START_TEST(devinst)
return
;
}
if
(
pIsWow64Process
)
pIsWow64Process
(
GetCurrentProcess
(),
&
is_wow64
);
if
(
pSetupDiCreateDeviceInfoListExW
)
test_SetupDiCreateDeviceInfoListEx
();
else
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment