update with more test for w32knapi
authorMagnus Olsen <magnus@greatlord.com>
Sun, 12 Aug 2007 12:31:10 +0000 (12:31 +0000)
committerMagnus Olsen <magnus@greatlord.com>
Sun, 12 Aug 2007 12:31:10 +0000 (12:31 +0000)
svn path=/trunk/; revision=28298

rostests/apitests/w32knapi/ntdd/NtGdiDdQueryDirectDrawObject.c

index d3e074b..4c375cb 100644 (file)
@@ -200,11 +200,13 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
 \r
        /* FIXME DD_HALINFO_V4 test */\r
 \r
-    RtlCopyMemory(&oldHalInfo, &HalInfo, sizeof(DD_HALINFO));\r
+/* Next Start 2 */\r
+       RtlCopyMemory(&oldHalInfo, &HalInfo, sizeof(DD_HALINFO));\r
 \r
        pHalInfo = &HalInfo;\r
        pCallBackFlags = CallBackFlags;\r
        RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO));\r
+\r
        RTEST(NtGdiDdQueryDirectDrawObject( hDirectDraw, pHalInfo, \r
                                                                                pCallBackFlags, puD3dCallbacks, \r
                                                                                puD3dDriverData, puD3dBufferCallbacks, \r
@@ -223,8 +225,180 @@ Test_NtGdiDdQueryDirectDrawObject(PTESTINFO pti)
 \r
        /* We do not retesting DD_HALINFO, instead we compare it */\r
        RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);\r
+       RTEST(pCallBackFlags[0] != 0);\r
+       RTEST(pCallBackFlags[1] != 0);\r
+\r
+       /* NT4 this will fail */\r
+       RTEST(pCallBackFlags[2] == 0);\r
+\r
+/* Next Start 3 */\r
+       pHalInfo = &HalInfo;\r
+       pCallBackFlags = CallBackFlags;\r
+       puD3dCallbacks = &D3dCallbacks;\r
+\r
+       RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO));\r
+       RtlZeroMemory(pCallBackFlags,sizeof(DWORD)*3);\r
 \r
+       RTEST(NtGdiDdQueryDirectDrawObject( hDirectDraw, pHalInfo, \r
+                                                                               pCallBackFlags, puD3dCallbacks, \r
+                                                                               puD3dDriverData, puD3dBufferCallbacks, \r
+                                                                               puD3dTextureFormats, puNumHeaps, \r
+                                                                               puvmList, puNumFourCC,\r
+                                                                               puFourCC)== FALSE);\r
+       RTEST(pHalInfo != NULL);\r
+       RTEST(pCallBackFlags != NULL);\r
+\r
+       if (pHalInfo->ddCaps.ddsCaps.dwCaps  & DDSCAPS_3DDEVICE )\r
+       {\r
+               RTEST(puD3dCallbacks != NULL);\r
+       }\r
+\r
+       RTEST(puD3dDriverData == NULL);\r
+       RTEST(puD3dBufferCallbacks == NULL);\r
+       RTEST(puD3dTextureFormats == NULL);\r
+       RTEST(puNumFourCC == NULL);\r
+       RTEST(puFourCC == NULL);\r
+       ASSERT1(pHalInfo != NULL);\r
 \r
+       /* We do not retesting DD_HALINFO, instead we compare it */\r
+       RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);\r
+       RTEST(pCallBackFlags[0] != 0);\r
+       RTEST(pCallBackFlags[1] != 0);\r
+\r
+       /* NT4 this will fail */\r
+       RTEST(pCallBackFlags[2] == 0);\r
+\r
+/* Next Start 4 */\r
+       pHalInfo = &HalInfo;\r
+       pCallBackFlags = CallBackFlags;\r
+       puD3dCallbacks = &D3dCallbacks;\r
+       puD3dDriverData = &D3dDriverData;\r
+\r
+       RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO));\r
+       RtlZeroMemory(pCallBackFlags,sizeof(DWORD)*3);\r
+       RtlZeroMemory(puD3dCallbacks,sizeof(D3DNTHAL_CALLBACKS));\r
+\r
+       RTEST(NtGdiDdQueryDirectDrawObject( hDirectDraw, pHalInfo, \r
+                                                                               pCallBackFlags, puD3dCallbacks, \r
+                                                                               puD3dDriverData, puD3dBufferCallbacks, \r
+                                                                               puD3dTextureFormats, puNumHeaps, \r
+                                                                               puvmList, puNumFourCC,\r
+                                                                               puFourCC)== FALSE);\r
+       RTEST(pHalInfo != NULL);\r
+       RTEST(pCallBackFlags != NULL);\r
+\r
+       if (pHalInfo->ddCaps.ddsCaps.dwCaps  & DDSCAPS_3DDEVICE )\r
+       {\r
+               RTEST(puD3dCallbacks != NULL);\r
+               RTEST(puD3dDriverData != NULL);\r
+       }\r
+\r
+       RTEST(puD3dBufferCallbacks == NULL);\r
+       RTEST(puD3dTextureFormats == NULL);\r
+       RTEST(puNumFourCC == NULL);\r
+       RTEST(puFourCC == NULL);\r
+       ASSERT1(pHalInfo != NULL);\r
+\r
+       /* We do not retesting DD_HALINFO, instead we compare it */\r
+       RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);\r
+       RTEST(pCallBackFlags[0] != 0);\r
+       RTEST(pCallBackFlags[1] != 0);\r
+\r
+       /* NT4 this will fail */\r
+       RTEST(pCallBackFlags[2] == 0);\r
+\r
+/* Next Start 5 */\r
+       pHalInfo = &HalInfo;\r
+       pCallBackFlags = CallBackFlags;\r
+       puD3dCallbacks = &D3dCallbacks;\r
+       puD3dDriverData = &D3dDriverData;\r
+       puD3dBufferCallbacks = &D3dBufferCallbacks;\r
+\r
+       RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO));\r
+       RtlZeroMemory(pCallBackFlags,sizeof(DWORD)*3);\r
+       RtlZeroMemory(puD3dCallbacks,sizeof(D3DNTHAL_CALLBACKS));\r
+       RtlZeroMemory(puD3dDriverData,sizeof(D3DNTHAL_CALLBACKS));\r
+\r
+       RTEST(NtGdiDdQueryDirectDrawObject( hDirectDraw, pHalInfo, \r
+                                                                               pCallBackFlags, puD3dCallbacks, \r
+                                                                               puD3dDriverData, puD3dBufferCallbacks, \r
+                                                                               puD3dTextureFormats, puNumHeaps, \r
+                                                                               puvmList, puNumFourCC,\r
+                                                                               puFourCC)== FALSE);\r
+       RTEST(pHalInfo != NULL);\r
+       RTEST(pCallBackFlags != NULL);\r
+\r
+       if (pHalInfo->ddCaps.ddsCaps.dwCaps  & DDSCAPS_3DDEVICE )\r
+       {\r
+               RTEST(puD3dCallbacks != NULL);\r
+               RTEST(puD3dDriverData != NULL);\r
+       }\r
+\r
+       RTEST(puD3dBufferCallbacks == NULL);\r
+       RTEST(puD3dTextureFormats == NULL);\r
+       RTEST(puNumFourCC == NULL);\r
+       RTEST(puFourCC == NULL);\r
+       ASSERT1(pHalInfo != NULL);\r
+\r
+       /* We do not retesting DD_HALINFO, instead we compare it */\r
+       RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);\r
+       RTEST(pCallBackFlags[0] != 0);\r
+       RTEST(pCallBackFlags[1] != 0);\r
+\r
+       /* NT4 this will fail */\r
+       RTEST(pCallBackFlags[2] == 0);\r
+\r
+\r
+\r
+/* Next Start 6 */\r
+       //pHalInfo = &HalInfo;\r
+       //pCallBackFlags = CallBackFlags;\r
+       //puD3dCallbacks = &D3dCallbacks;\r
+       //puD3dDriverData = &D3dDriverData;\r
+       //puD3dBufferCallbacks = &D3dBufferCallbacks;\r
+\r
+       //RtlZeroMemory(pHalInfo,sizeof(DD_HALINFO));\r
+       //RtlZeroMemory(pCallBackFlags,sizeof(DWORD)*3);\r
+       //RtlZeroMemory(puD3dCallbacks,sizeof(D3DNTHAL_CALLBACKS));\r
+       ////RtlZeroMemory(puD3dDriverData,sizeof(D3DNTHAL_CALLBACKS));\r
+       //RtlZeroMemory(&D3dBufferCallbacks,sizeof(D3DNTHAL_CALLBACKS));\r
+\r
+       //RTEST(NtGdiDdQueryDirectDrawObject( hDirectDraw, pHalInfo, \r
+       //                                                                      pCallBackFlags, puD3dCallbacks, \r
+       //                                                                      puD3dDriverData, puD3dBufferCallbacks, \r
+       //                                                                      puD3dTextureFormats, puNumHeaps, \r
+       //                                                                      puvmList, puNumFourCC,\r
+       //                                                                      puFourCC)== FALSE);\r
+       //RTEST(pHalInfo != NULL);\r
+       //RTEST(pCallBackFlags != NULL);\r
+\r
+       //if (pHalInfo->ddCaps.ddsCaps.dwCaps  & DDSCAPS_3DDEVICE )\r
+       //{\r
+       //      RTEST(puD3dCallbacks != NULL);\r
+       //      RTEST(puD3dDriverData != NULL);\r
+       //      RTEST(puD3dBufferCallbacks != NULL);\r
+       //}\r
+\r
+\r
+       //RTEST(puD3dTextureFormats == NULL);\r
+       //RTEST(puNumFourCC == NULL);\r
+       //RTEST(puFourCC == NULL);\r
+       //ASSERT1(pHalInfo != NULL);\r
+\r
+       ///* We do not retesting DD_HALINFO, instead we compare it */\r
+       //RTEST(memcmp(&oldHalInfo, pHalInfo, sizeof(DD_HALINFO)) == 0);\r
+       //RTEST(pCallBackFlags[0] != 0);\r
+       //RTEST(pCallBackFlags[1] != 0);\r
+\r
+       ///* NT4 this will fail */\r
+       //RTEST(pCallBackFlags[2] == 0);\r
+\r
+\r
+/* FIXME \r
+       RTEST(puD3dTextureFormats == NULL);\r
+       RTEST(puNumFourCC == NULL);\r
+       RTEST(puFourCC == NULL);\r
+*/\r
        /* Cleanup ReactX setup */\r
        DeleteDC(hdc);\r
        Syscall(L"NtGdiDdDeleteDirectDrawObject", 1, &hDirectDraw);\r