From: "Greg Geldorp" Subject: ddraw/tests: Force some tests to pass on XP/Win2003 Wow64 Message-Id: <52199.83.163.1.131.1294315690.squirrel@webmail.geldorp.nl> Date: Thu, 6 Jan 2011 13:08:10 +0100 (CET) --- dlls/ddraw/tests/d3d.c | 23 ++++++++++++++++++----- 1 files changed, 18 insertions(+), 5 deletions(-) diff --git a/dlls/ddraw/tests/d3d.c b/dlls/ddraw/tests/d3d.c index a8535a3..1a9ce59 100644 --- a/dlls/ddraw/tests/d3d.c +++ b/dlls/ddraw/tests/d3d.c @@ -766,15 +766,27 @@ static HRESULT WINAPI enumDevicesCallback(GUID *Guid,LPSTR DeviceDescription,LPS } else if(IsEqualGUID(&IID_IDirect3DHALDevice, Guid)) { + BOOL (WINAPI *pIsWow64Process)(HANDLE, PBOOL); + BOOL is_wow64; + /* pow2 is hardware dependent */ - ok(hal->dpcLineCaps.dwTextureCaps & D3DPTEXTURECAPS_PERSPECTIVE, + pIsWow64Process = (void *) GetProcAddress(GetModuleHandleA("kernel32.dll"), + "IsWow64Process"); + if (pIsWow64Process == NULL || + ! pIsWow64Process(GetCurrentProcess(), &is_wow64)) + is_wow64 = FALSE; + ok(hal->dpcLineCaps.dwTextureCaps & D3DPTEXTURECAPS_PERSPECTIVE || + broken(is_wow64) /* XP/Win2003 Wow64 on VMware */, "HAL Device %d hal line caps does not have D3DPTEXTURECAPS_PERSPECTIVE set\n", ver); - ok(hal->dpcTriCaps.dwTextureCaps & D3DPTEXTURECAPS_PERSPECTIVE, + ok(hal->dpcTriCaps.dwTextureCaps & D3DPTEXTURECAPS_PERSPECTIVE || + broken(is_wow64) /* XP/Win2003 Wow64 on VMware */, "HAL Device %d hal tri caps does not have D3DPTEXTURECAPS_PERSPECTIVE set\n", ver); - ok((hel->dpcLineCaps.dwTextureCaps & D3DPTEXTURECAPS_PERSPECTIVE) == 0, + ok((hel->dpcLineCaps.dwTextureCaps & D3DPTEXTURECAPS_PERSPECTIVE) == 0 || + broken(is_wow64) /* XP/Win2003 Wow64 on VMware */, "HAL Device %d hel line caps has D3DPTEXTURECAPS_PERSPECTIVE set\n", ver); - ok((hel->dpcTriCaps.dwTextureCaps & D3DPTEXTURECAPS_PERSPECTIVE) == 0, + ok((hel->dpcTriCaps.dwTextureCaps & D3DPTEXTURECAPS_PERSPECTIVE) == 0 || + broken(is_wow64) /* XP/Win2003 Wow64 on VMware */, "HAL Device %d hel tri caps has D3DPTEXTURECAPS_PERSPECTIVE set\n", ver); } else if(IsEqualGUID(&IID_IDirect3DRefDevice, Guid)) @@ -3622,7 +3634,8 @@ static void FindDevice(void) /* Currently Wine only supports the creation of one Direct3D device * for a given DirectDraw instance. */ todo_wine - ok(SUCCEEDED(hr), "Expected IDirectDrawSurface::QueryInterface to succeed, got 0x%08x\n", hr); + ok(SUCCEEDED(hr) || broken(hr == DDERR_INVALIDPIXELFORMAT) /* XP/Win2003 Wow64 on VMware */, + "Expected IDirectDrawSurface::QueryInterface to succeed, got 0x%08x\n", hr); if (SUCCEEDED(hr)) IDirect3DDevice_Release(d3dhal);