mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 09:25:10 +00:00
win32kdxtest does not contain any more test for NtGdiDdQueryDirectDrawObject
So now I start adding new test, that I did manual testing for and reading debugout put for. we still missing test for NtGdiDdQueryDirectDrawObject svn path=/trunk/; revision=28299
This commit is contained in:
parent
b694e14566
commit
f41e3a0f1a
1 changed files with 128 additions and 51 deletions
|
@ -87,6 +87,8 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
||||||
RTEST(puD3dTextureFormats == NULL);
|
RTEST(puD3dTextureFormats == NULL);
|
||||||
RTEST(puNumFourCC == NULL);
|
RTEST(puNumFourCC == NULL);
|
||||||
RTEST(puFourCC == NULL);
|
RTEST(puFourCC == NULL);
|
||||||
|
RTEST(puNumHeaps == NULL);
|
||||||
|
RTEST(puvmList == NULL);
|
||||||
|
|
||||||
RTEST(NtGdiDdQueryDirectDrawObject( hDirectDraw, pHalInfo,
|
RTEST(NtGdiDdQueryDirectDrawObject( hDirectDraw, pHalInfo,
|
||||||
pCallBackFlags, puD3dCallbacks,
|
pCallBackFlags, puD3dCallbacks,
|
||||||
|
@ -103,6 +105,8 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
||||||
RTEST(puD3dTextureFormats == NULL);
|
RTEST(puD3dTextureFormats == NULL);
|
||||||
RTEST(puNumFourCC == NULL);
|
RTEST(puNumFourCC == NULL);
|
||||||
RTEST(puFourCC == NULL);
|
RTEST(puFourCC == NULL);
|
||||||
|
RTEST(puNumHeaps == NULL);
|
||||||
|
RTEST(puvmList == NULL);
|
||||||
|
|
||||||
pHalInfo = &HalInfo;
|
pHalInfo = &HalInfo;
|
||||||
RTEST(NtGdiDdQueryDirectDrawObject( hDirectDraw, pHalInfo,
|
RTEST(NtGdiDdQueryDirectDrawObject( hDirectDraw, pHalInfo,
|
||||||
|
@ -120,6 +124,8 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
||||||
RTEST(puNumFourCC == NULL);
|
RTEST(puNumFourCC == NULL);
|
||||||
RTEST(puFourCC == NULL);
|
RTEST(puFourCC == NULL);
|
||||||
ASSERT1(pHalInfo != NULL);
|
ASSERT1(pHalInfo != NULL);
|
||||||
|
RTEST(puNumHeaps == NULL);
|
||||||
|
RTEST(puvmList == NULL);
|
||||||
|
|
||||||
if ((pHalInfo->dwSize != sizeof(DD_HALINFO)) &&
|
if ((pHalInfo->dwSize != sizeof(DD_HALINFO)) &&
|
||||||
(pHalInfo->dwSize != sizeof(DD_HALINFO_V4)))
|
(pHalInfo->dwSize != sizeof(DD_HALINFO_V4)))
|
||||||
|
@ -128,8 +134,6 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
||||||
ASSERT1(pHalInfo->dwSize != sizeof(DD_HALINFO));
|
ASSERT1(pHalInfo->dwSize != sizeof(DD_HALINFO));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (pHalInfo->dwSize == sizeof(DD_HALINFO))
|
if (pHalInfo->dwSize == sizeof(DD_HALINFO))
|
||||||
{
|
{
|
||||||
/*the offset, in bytes, to primary surface in the display memory */
|
/*the offset, in bytes, to primary surface in the display memory */
|
||||||
|
@ -222,6 +226,8 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
||||||
RTEST(puNumFourCC == NULL);
|
RTEST(puNumFourCC == NULL);
|
||||||
RTEST(puFourCC == NULL);
|
RTEST(puFourCC == NULL);
|
||||||
ASSERT1(pHalInfo != NULL);
|
ASSERT1(pHalInfo != NULL);
|
||||||
|
RTEST(puNumHeaps == NULL);
|
||||||
|
RTEST(puvmList == NULL);
|
||||||
|
|
||||||
/* We do not retesting DD_HALINFO, instead we compare it */
|
/* We do not retesting DD_HALINFO, instead we compare it */
|
||||||
RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);
|
RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);
|
||||||
|
@ -258,6 +264,8 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
||||||
RTEST(puD3dTextureFormats == NULL);
|
RTEST(puD3dTextureFormats == NULL);
|
||||||
RTEST(puNumFourCC == NULL);
|
RTEST(puNumFourCC == NULL);
|
||||||
RTEST(puFourCC == NULL);
|
RTEST(puFourCC == NULL);
|
||||||
|
RTEST(puNumHeaps == NULL);
|
||||||
|
RTEST(puvmList == NULL);
|
||||||
ASSERT1(pHalInfo != NULL);
|
ASSERT1(pHalInfo != NULL);
|
||||||
|
|
||||||
/* We do not retesting DD_HALINFO, instead we compare it */
|
/* We do not retesting DD_HALINFO, instead we compare it */
|
||||||
|
@ -297,6 +305,8 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
||||||
RTEST(puD3dTextureFormats == NULL);
|
RTEST(puD3dTextureFormats == NULL);
|
||||||
RTEST(puNumFourCC == NULL);
|
RTEST(puNumFourCC == NULL);
|
||||||
RTEST(puFourCC == NULL);
|
RTEST(puFourCC == NULL);
|
||||||
|
RTEST(puNumHeaps == NULL);
|
||||||
|
RTEST(puvmList == NULL);
|
||||||
ASSERT1(pHalInfo != NULL);
|
ASSERT1(pHalInfo != NULL);
|
||||||
|
|
||||||
/* We do not retesting DD_HALINFO, instead we compare it */
|
/* We do not retesting DD_HALINFO, instead we compare it */
|
||||||
|
@ -332,12 +342,117 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
||||||
{
|
{
|
||||||
RTEST(puD3dCallbacks != NULL);
|
RTEST(puD3dCallbacks != NULL);
|
||||||
RTEST(puD3dDriverData != NULL);
|
RTEST(puD3dDriverData != NULL);
|
||||||
|
RTEST(puD3dBufferCallbacks != NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
RTEST(puD3dBufferCallbacks == NULL);
|
|
||||||
RTEST(puD3dTextureFormats == NULL);
|
RTEST(puD3dTextureFormats == NULL);
|
||||||
RTEST(puNumFourCC == NULL);
|
RTEST(puNumFourCC == NULL);
|
||||||
RTEST(puFourCC == NULL);
|
RTEST(puFourCC == NULL);
|
||||||
|
RTEST(puNumHeaps == NULL);
|
||||||
|
RTEST(puvmList == NULL);
|
||||||
|
ASSERT1(pHalInfo != NULL);
|
||||||
|
|
||||||
|
/* We do not retesting DD_HALINFO, instead we compare it */
|
||||||
|
RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);
|
||||||
|
RTEST(pCallBackFlags[0] != 0);
|
||||||
|
RTEST(pCallBackFlags[1] != 0);
|
||||||
|
|
||||||
|
/* NT4 this will fail */
|
||||||
|
RTEST(pCallBackFlags[2] == 0);
|
||||||
|
|
||||||
|
/* Next Start 6 */
|
||||||
|
pHalInfo = &HalInfo;
|
||||||
|
pCallBackFlags = CallBackFlags;
|
||||||
|
puD3dCallbacks = &D3dCallbacks;
|
||||||
|
puD3dDriverData = &D3dDriverData;
|
||||||
|
puD3dBufferCallbacks = &D3dBufferCallbacks;
|
||||||
|
|
||||||
|
RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO));
|
||||||
|
RtlZeroMemory(pCallBackFlags,sizeof(DWORD)*3);
|
||||||
|
RtlZeroMemory(puD3dCallbacks,sizeof(D3DNTHAL_CALLBACKS));
|
||||||
|
RtlZeroMemory(puD3dDriverData,sizeof(D3DNTHAL_GLOBALDRIVERDATA));
|
||||||
|
RtlZeroMemory(&D3dBufferCallbacks,sizeof(DD_D3DBUFCALLBACKS));
|
||||||
|
|
||||||
|
RTEST(NtGdiDdQueryDirectDrawObject( hDirectDraw, pHalInfo,
|
||||||
|
pCallBackFlags, puD3dCallbacks,
|
||||||
|
puD3dDriverData, puD3dBufferCallbacks,
|
||||||
|
puD3dTextureFormats, puNumHeaps,
|
||||||
|
puvmList, puNumFourCC,
|
||||||
|
puFourCC)== FALSE);
|
||||||
|
RTEST(pHalInfo != NULL);
|
||||||
|
RTEST(pCallBackFlags != NULL);
|
||||||
|
|
||||||
|
if (pHalInfo->ddCaps.ddsCaps.dwCaps & DDSCAPS_3DDEVICE )
|
||||||
|
{
|
||||||
|
RTEST(puD3dCallbacks != NULL);
|
||||||
|
RTEST(puD3dDriverData != NULL);
|
||||||
|
RTEST(puD3dBufferCallbacks != NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
RTEST(puD3dTextureFormats == NULL);
|
||||||
|
RTEST(puNumFourCC == NULL);
|
||||||
|
RTEST(puFourCC == NULL);
|
||||||
|
RTEST(puNumHeaps == NULL);
|
||||||
|
RTEST(puvmList == NULL);
|
||||||
|
ASSERT1(pHalInfo != NULL);
|
||||||
|
|
||||||
|
/* We do not retesting DD_HALINFO, instead we compare it */
|
||||||
|
RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);
|
||||||
|
RTEST(pCallBackFlags[0] != 0);
|
||||||
|
RTEST(pCallBackFlags[1] != 0);
|
||||||
|
|
||||||
|
/* NT4 this will fail */
|
||||||
|
RTEST(pCallBackFlags[2] == 0);
|
||||||
|
|
||||||
|
/* Next Start 7 */
|
||||||
|
pHalInfo = &HalInfo;
|
||||||
|
pCallBackFlags = CallBackFlags;
|
||||||
|
puD3dCallbacks = &D3dCallbacks;
|
||||||
|
puD3dDriverData = &D3dDriverData;
|
||||||
|
puD3dBufferCallbacks = &D3dBufferCallbacks;
|
||||||
|
|
||||||
|
/* It is forbein to return a DDSURFACEDESC2 it should always be DDSURFACEDESC
|
||||||
|
This is only for detected bad drivers that does not follow the rules, if they
|
||||||
|
does not follow tthe rules only not everthing being copy then in gdi32.dll
|
||||||
|
gdi32.dll always assume it is DDSURFACEDESC size
|
||||||
|
*/
|
||||||
|
if (puD3dDriverData->dwNumTextureFormats != 0)
|
||||||
|
{
|
||||||
|
puD3dTextureFormats = malloc (puD3dDriverData->dwNumTextureFormats * sizeof(DDSURFACEDESC2));
|
||||||
|
}
|
||||||
|
|
||||||
|
RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO));
|
||||||
|
RtlZeroMemory(pCallBackFlags,sizeof(DWORD)*3);
|
||||||
|
RtlZeroMemory(puD3dCallbacks,sizeof(D3DNTHAL_CALLBACKS));
|
||||||
|
RtlZeroMemory(puD3dDriverData,sizeof(D3DNTHAL_GLOBALDRIVERDATA));
|
||||||
|
RtlZeroMemory(&D3dBufferCallbacks,sizeof(DD_D3DBUFCALLBACKS));
|
||||||
|
|
||||||
|
RTEST(NtGdiDdQueryDirectDrawObject( hDirectDraw, pHalInfo,
|
||||||
|
pCallBackFlags, puD3dCallbacks,
|
||||||
|
puD3dDriverData, puD3dBufferCallbacks,
|
||||||
|
puD3dTextureFormats, puNumHeaps,
|
||||||
|
puvmList, puNumFourCC,
|
||||||
|
puFourCC)== FALSE);
|
||||||
|
RTEST(pHalInfo != NULL);
|
||||||
|
RTEST(pCallBackFlags != NULL);
|
||||||
|
|
||||||
|
if (pHalInfo->ddCaps.ddsCaps.dwCaps & DDSCAPS_3DDEVICE )
|
||||||
|
{
|
||||||
|
RTEST(puD3dCallbacks != NULL);
|
||||||
|
RTEST(puD3dDriverData != NULL);
|
||||||
|
RTEST(puD3dBufferCallbacks != NULL);
|
||||||
|
if (puD3dDriverData->dwNumTextureFormats != 0)
|
||||||
|
{
|
||||||
|
/* FIXME add a better test for texture */
|
||||||
|
RTEST(puD3dTextureFormats != NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
RTEST(puNumFourCC == NULL);
|
||||||
|
RTEST(puFourCC == NULL);
|
||||||
|
RTEST(puNumHeaps == NULL);
|
||||||
|
RTEST(puvmList == NULL);
|
||||||
ASSERT1(pHalInfo != NULL);
|
ASSERT1(pHalInfo != NULL);
|
||||||
|
|
||||||
/* We do not retesting DD_HALINFO, instead we compare it */
|
/* We do not retesting DD_HALINFO, instead we compare it */
|
||||||
|
@ -350,55 +465,17 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Next Start 6 */
|
/* Todo
|
||||||
//pHalInfo = &HalInfo;
|
* adding test for
|
||||||
//pCallBackFlags = CallBackFlags;
|
* puD3dCallbacks
|
||||||
//puD3dCallbacks = &D3dCallbacks;
|
* puD3dDriverData
|
||||||
//puD3dDriverData = &D3dDriverData;
|
* puD3dBufferCallbacks
|
||||||
//puD3dBufferCallbacks = &D3dBufferCallbacks;
|
* puNumFourCC
|
||||||
|
* puFourCC
|
||||||
|
* puNumHeaps
|
||||||
|
* puvmList
|
||||||
|
*/
|
||||||
|
|
||||||
//RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO));
|
|
||||||
//RtlZeroMemory(pCallBackFlags,sizeof(DWORD)*3);
|
|
||||||
//RtlZeroMemory(puD3dCallbacks,sizeof(D3DNTHAL_CALLBACKS));
|
|
||||||
////RtlZeroMemory(puD3dDriverData,sizeof(D3DNTHAL_CALLBACKS));
|
|
||||||
//RtlZeroMemory(&D3dBufferCallbacks,sizeof(D3DNTHAL_CALLBACKS));
|
|
||||||
|
|
||||||
//RTEST(NtGdiDdQueryDirectDrawObject( hDirectDraw, pHalInfo,
|
|
||||||
// pCallBackFlags, puD3dCallbacks,
|
|
||||||
// puD3dDriverData, puD3dBufferCallbacks,
|
|
||||||
// puD3dTextureFormats, puNumHeaps,
|
|
||||||
// puvmList, puNumFourCC,
|
|
||||||
// puFourCC)== FALSE);
|
|
||||||
//RTEST(pHalInfo != NULL);
|
|
||||||
//RTEST(pCallBackFlags != NULL);
|
|
||||||
|
|
||||||
//if (pHalInfo->ddCaps.ddsCaps.dwCaps & DDSCAPS_3DDEVICE )
|
|
||||||
//{
|
|
||||||
// RTEST(puD3dCallbacks != NULL);
|
|
||||||
// RTEST(puD3dDriverData != NULL);
|
|
||||||
// RTEST(puD3dBufferCallbacks != NULL);
|
|
||||||
//}
|
|
||||||
|
|
||||||
|
|
||||||
//RTEST(puD3dTextureFormats == NULL);
|
|
||||||
//RTEST(puNumFourCC == NULL);
|
|
||||||
//RTEST(puFourCC == NULL);
|
|
||||||
//ASSERT1(pHalInfo != NULL);
|
|
||||||
|
|
||||||
///* We do not retesting DD_HALINFO, instead we compare it */
|
|
||||||
//RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);
|
|
||||||
//RTEST(pCallBackFlags[0] != 0);
|
|
||||||
//RTEST(pCallBackFlags[1] != 0);
|
|
||||||
|
|
||||||
///* NT4 this will fail */
|
|
||||||
//RTEST(pCallBackFlags[2] == 0);
|
|
||||||
|
|
||||||
|
|
||||||
/* FIXME
|
|
||||||
RTEST(puD3dTextureFormats == NULL);
|
|
||||||
RTEST(puNumFourCC == NULL);
|
|
||||||
RTEST(puFourCC == NULL);
|
|
||||||
*/
|
|
||||||
/* Cleanup ReactX setup */
|
/* Cleanup ReactX setup */
|
||||||
DeleteDC(hdc);
|
DeleteDC(hdc);
|
||||||
Syscall(L"NtGdiDdDeleteDirectDrawObject", 1, &hDirectDraw);
|
Syscall(L"NtGdiDdDeleteDirectDrawObject", 1, &hDirectDraw);
|
||||||
|
|
Loading…
Reference in a new issue