Commit 187de179 authored by Francois Gouget's avatar Francois Gouget Committed by Alexandre Julliard

psapi/tests: Fix the EnumProcessModules() test and provide more diagnostic information if it fails.

On some Windows systems aclayers.dll gets injected into the process and brings in a lot of extra dlls.
parent d82c70e5
...@@ -107,10 +107,26 @@ static void test_EnumProcessModules(void) ...@@ -107,10 +107,26 @@ static void test_EnumProcessModules(void)
ret = pEnumProcessModules(hpQV, &hMod, sizeof(HMODULE), &cbNeeded); ret = pEnumProcessModules(hpQV, &hMod, sizeof(HMODULE), &cbNeeded);
if(ret != 1) if(ret != 1)
return; return;
ok(cbNeeded / sizeof(HMODULE) >= 3 && cbNeeded / sizeof(HMODULE) <= 5 * sizeof(HMODULE),
"cbNeeded=%d\n", cbNeeded);
ok(hMod == GetModuleHandle(NULL), ok(hMod == GetModuleHandle(NULL),
"hMod=%p GetModuleHandle(NULL)=%p\n", hMod, GetModuleHandle(NULL)); "hMod=%p GetModuleHandle(NULL)=%p\n", hMod, GetModuleHandle(NULL));
ok(cbNeeded % sizeof(hMod) == 0, "not a multiple of sizeof(HMODULE) cbNeeded=%d\n", cbNeeded);
/* Windows sometimes has a bunch of extra dlls, presumably brought in by
* aclayers.dll.
*/
if (cbNeeded < 4 * sizeof(HMODULE) || cbNeeded > 30 * sizeof(HMODULE))
{
HMODULE hmods[100];
int i;
ok(0, "cbNeeded=%d\n", cbNeeded);
pEnumProcessModules(hpQV, hmods, sizeof(hmods), &cbNeeded);
for (i = 0 ; i < cbNeeded/sizeof(*hmods); i++)
{
char path[1024];
GetModuleFileNameA(hmods[i], path, sizeof(path));
trace("i=%d hmod=%p path=[%s]\n", i, hmods[i], path);
}
}
} }
static void test_GetModuleInformation(void) static void test_GetModuleInformation(void)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment