Module: wine Branch: master Commit: c672071db70d0932631d92ddebc6ec65a9947c51 URL: http://source.winehq.org/git/wine.git/?a=commit;h=c672071db70d0932631d92ddeb...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Tue Jun 23 09:05:32 2009 +0200
d3d9/tests: Make sure the device is released properly.
---
dlls/d3d9/tests/device.c | 105 ++++++++++++++++++++++++++++++++++----------- dlls/d3d9/tests/query.c | 16 +++++-- 2 files changed, 91 insertions(+), 30 deletions(-)
diff --git a/dlls/d3d9/tests/device.c b/dlls/d3d9/tests/device.c index 41c6d47..279c065 100644 --- a/dlls/d3d9/tests/device.c +++ b/dlls/d3d9/tests/device.c @@ -130,9 +130,13 @@ static void test_mipmap_levels(void) check_mipmap_levels(pDevice, 1, 256, 9); check_mipmap_levels(pDevice, 1, 1, 1);
- cleanup: - if (pD3d) IUnknown_Release( pD3d ); - if (pDevice) IUnknown_Release( pDevice ); +cleanup: + if (pDevice) + { + UINT refcount = IUnknown_Release( pDevice ); + ok(!refcount, "Device has %u references left.\n", refcount); + } + if (pD3d) IUnknown_Release( pD3d ); DestroyWindow( hwnd ); }
@@ -186,8 +190,12 @@ static void test_checkdevicemultisampletype(void) ok(qualityLevels == 1,"qualitylevel is not 1 but %d\n",qualityLevels);
cleanup: - if (pD3d) IUnknown_Release( pD3d ); - if (pDevice) IUnknown_Release( pDevice ); + if (pDevice) + { + UINT refcount = IUnknown_Release( pDevice ); + ok(!refcount, "Device has %u references left.\n", refcount); + } + if (pD3d) IUnknown_Release( pD3d ); DestroyWindow( hwnd ); }
@@ -326,12 +334,16 @@ static void test_swapchain(void) ok(swapchainX == NULL, "The swapchain pointer is %p\n", swapchainX); if(swapchainX && swapchainX != (void *) 0xdeadbeef ) IDirect3DSwapChain9_Release(swapchainX);
- cleanup: +cleanup: if(swapchain1) IDirect3DSwapChain9_Release(swapchain1); if(swapchain2) IDirect3DSwapChain9_Release(swapchain2); if(swapchain3) IDirect3DSwapChain9_Release(swapchain3); - if(pDevice) IDirect3DDevice9_Release(pDevice); - if(pD3d) IDirect3DDevice9_Release(pD3d); + if (pDevice) + { + UINT refcount = IDirect3DDevice9_Release(pDevice); + ok(!refcount, "Device has %u references left.\n", refcount); + } + if (pD3d) IDirect3D9_Release(pD3d); DestroyWindow( hwnd ); }
@@ -760,8 +772,12 @@ static void test_cursor(void) ok(info.hCursor == cur, "The cursor handle is %p\n", info.hCursor); /* unchanged */
cleanup: - if(pDevice) IDirect3D9_Release(pDevice); - if(pD3d) IDirect3D9_Release(pD3d); + if (pDevice) + { + UINT refcount = IDirect3DDevice9_Release(pDevice); + ok(!refcount, "Device has %u references left.\n", refcount); + } + if (pD3d) IDirect3D9_Release(pD3d); DestroyWindow( hwnd ); }
@@ -1145,8 +1161,12 @@ static void test_reset(void)
cleanup: HeapFree(GetProcessHeap(), 0, modes); - if(pD3d) IDirect3D9_Release(pD3d); - if(pDevice) IDirect3D9_Release(pDevice); + if (pDevice) + { + UINT refcount = IDirect3DDevice9_Release(pDevice); + ok(!refcount, "Device has %u references left.\n", refcount); + } + if (pD3d) IDirect3D9_Release(pD3d); }
/* Test adapter display modes */ @@ -1389,8 +1409,12 @@ cleanup: if(pSurface1) IDirect3DSurface9_Release(pSurface1); if(pSurface2) IDirect3DSurface9_Release(pSurface2); if(pSurface3) IDirect3DSurface9_Release(pSurface3); - if(pD3d) IDirect3D9_Release(pD3d); - if(pDevice) IDirect3D9_Release(pDevice); + if (pDevice) + { + UINT refcount = IDirect3DDevice9_Release(pDevice); + ok(!refcount, "Device has %u references left.\n", refcount); + } + if (pD3d) IDirect3D9_Release(pD3d); if(hwnd) DestroyWindow(hwnd); }
@@ -1456,8 +1480,12 @@ static void test_limits(void) */ cleanup: if(pTexture) IDirect3DTexture9_Release(pTexture); - if(pD3d) IDirect3D9_Release(pD3d); - if(pDevice) IDirect3D9_Release(pDevice); + if (pDevice) + { + UINT refcount = IDirect3D9_Release(pDevice); + ok(!refcount, "Device has %u references left.\n", refcount); + } + if (pD3d) IDirect3D9_Release(pD3d); if(hwnd) DestroyWindow(hwnd); }
@@ -1615,8 +1643,12 @@ static void test_depthstenciltest(void)
cleanup: if(pDepthStencil) IDirect3DSurface9_Release(pDepthStencil); - if(pD3d) IDirect3D9_Release(pD3d); - if(pDevice) IDirect3D9_Release(pDevice); + if (pDevice) + { + UINT refcount = IDirect3D9_Release(pDevice); + ok(!refcount, "Device has %u references left.\n", refcount); + } + if (pD3d) IDirect3D9_Release(pD3d); if(hwnd) DestroyWindow(hwnd); }
@@ -1739,8 +1771,12 @@ static void test_draw_indexed(void) IDirect3DVertexDeclaration9_Release(vertex_declaration);
cleanup: + if (device) + { + UINT refcount = IDirect3DDevice9_Release(device); + ok(!refcount, "Device has %u references left.\n", refcount); + } if (d3d9) IDirect3D9_Release(d3d9); - if (device) IDirect3DDevice9_Release(device); if (hwnd) DestroyWindow(hwnd); }
@@ -1831,7 +1867,11 @@ cleanup: if (buffer) IDirect3DVertexBuffer9_Release(buffer); if(decl) IDirect3DVertexDeclaration9_Release(decl); if(shader) IDirect3DVertexShader9_Release(shader); - if(device) IDirect3DDevice9_Release(device); + if (device) + { + UINT refcount = IDirect3DDevice9_Release(device); + ok(!refcount, "Device has %u references left.\n", refcount); + } if(d3d9) IDirect3D9_Release(d3d9); }
@@ -1901,8 +1941,13 @@ static void test_vertex_buffer_alignment(void) } }
- cleanup: - if(d3d9) IDirect3D9_Release(d3d9); +cleanup: + if (device) + { + UINT refcount = IDirect3DDevice9_Release(device); + ok(!refcount, "Device has %u references left.\n", refcount); + } + if (d3d9) IDirect3D9_Release(d3d9); }
static void test_lights(void) @@ -1963,8 +2008,12 @@ static void test_lights(void) ok(hr == D3D_OK, "Disabling light %u failed with %08x\n", i, hr); }
- cleanup: - if(device) IDirect3DDevice9_Release(device); +cleanup: + if (device) + { + UINT refcount = IDirect3DDevice9_Release(device); + ok(!refcount, "Device has %u references left.\n", refcount); + } if(d3d9) IDirect3D9_Release(d3d9); }
@@ -2037,9 +2086,13 @@ static void test_set_stream_source(void) hr = IDirect3DDevice9_SetStreamSource(device, 0, NULL, 0, 0); ok(hr == D3D_OK, "Failed to set the stream source, offset 4, hr = %08x\n", hr);
- if(pVertexBuffer) IDirect3DDevice9_Release(pVertexBuffer); cleanup: - if(device) IDirect3DDevice9_Release(device); + if (pVertexBuffer) IDirect3DVertexBuffer9_Release(pVertexBuffer); + if (device) + { + UINT refcount = IDirect3DDevice9_Release(device); + ok(!refcount, "Device has %u references left.\n", refcount); + } if(d3d9) IDirect3D9_Release(d3d9); }
diff --git a/dlls/d3d9/tests/query.c b/dlls/d3d9/tests/query.c index 5a75907..d015353 100644 --- a/dlls/d3d9/tests/query.c +++ b/dlls/d3d9/tests/query.c @@ -130,8 +130,12 @@ static void test_query_support(IDirect3D9 *pD3d, HWND hwnd) } }
- cleanup: - if(pDevice) IDirect3DDevice9_Release(pDevice); +cleanup: + if (pDevice) + { + UINT refcount = IDirect3DDevice9_Release(pDevice); + ok(!refcount, "Device has %u references left.\n", refcount); + } }
static void test_occlusion_query_states(IDirect3D9 *pD3d, HWND hwnd) @@ -226,10 +230,14 @@ static void test_occlusion_query_states(IDirect3D9 *pD3d, HWND hwnd) hr = IDirect3DQuery9_Issue(pQuery, D3DISSUE_END); ok(hr == D3D_OK, "IDirect3DQuery9_Issue(D3DISSUE_END) on a ended query returned %08x\n", hr);
- cleanup: +cleanup: HeapFree(GetProcessHeap(), 0, data); if (pQuery) IDirect3DQuery9_Release(pQuery); - if(pDevice) IDirect3DDevice9_Release(pDevice); + if (pDevice) + { + UINT refcount = IDirect3DDevice9_Release(pDevice); + ok(!refcount, "Device has %u references left.\n", refcount); + } }
START_TEST(query)