Module: wine Branch: master Commit: f0e830756683a54d6e4bf862d40202aa4be80e8f URL: http://source.winehq.org/git/wine.git/?a=commit;h=f0e830756683a54d6e4bf862d4...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Tue Jun 23 09:05:33 2009 +0200
d3d8/tests: Make sure the device is released properly.
---
dlls/d3d8/tests/device.c | 88 +++++++++++++++++++++++++++++++++------------ 1 files changed, 64 insertions(+), 24 deletions(-)
diff --git a/dlls/d3d8/tests/device.c b/dlls/d3d8/tests/device.c index f039a1b..97f64a1 100644 --- a/dlls/d3d8/tests/device.c +++ b/dlls/d3d8/tests/device.c @@ -144,9 +144,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 ); }
@@ -259,12 +263,16 @@ static void test_swapchain(void) ok(backbuffer == (void *) 0xdeadbeef, "The back buffer pointer was modified (%p)\n", backbuffer); if(backbuffer && backbuffer != (void *) 0xdeadbeef) IDirect3DSurface8_Release(backbuffer);
- cleanup: +cleanup: if(swapchain1) IDirect3DSwapChain8_Release(swapchain1); if(swapchain2) IDirect3DSwapChain8_Release(swapchain2); if(swapchain3) IDirect3DSwapChain8_Release(swapchain3); - if(pDevice) IDirect3DDevice8_Release(pDevice); - if(pD3d) IDirect3DDevice8_Release(pD3d); + if (pDevice) + { + UINT refcount = IDirect3DDevice8_Release(pDevice); + ok(!refcount, "Device has %u references left.\n", refcount); + } + if (pD3d) IDirect3D8_Release(pD3d); DestroyWindow( hwnd ); }
@@ -691,8 +699,12 @@ static void test_cursor(void) ok(info.hCursor == cur, "The cursor handle is %p\n", info.hCursor); /* unchanged */
cleanup: - if(pD3d) IDirect3D8_Release(pD3d); - if(pDevice) IDirect3D8_Release(pDevice); + if (pDevice) + { + UINT refcount = IDirect3DDevice8_Release(pDevice); + ok(!refcount, "Device has %u references left.\n", refcount); + } + if (pD3d) IDirect3D8_Release(pD3d); }
static void test_states(void) @@ -732,8 +744,12 @@ static void test_states(void) ok(hr == D3D_OK, "IDirect3DDevice8_SetRenderState(D3DRS_ZVISIBLE, FALSE) returned %#08x\n", hr);
cleanup: - if(pD3d) IDirect3D8_Release(pD3d); - if(pDevice) IDirect3D8_Release(pDevice); + if (pDevice) + { + UINT refcount = IDirect3DDevice8_Release(pDevice); + ok(!refcount, "Device has %u references left.\n", refcount); + } + if (pD3d) IDirect3D8_Release(pD3d); }
static void test_shader_versions(void) @@ -851,8 +867,12 @@ static void test_scene(void) /* StretchRect does not exit in Direct3D8, so no equivalent to the d3d9 stretchrect tests */
cleanup: - if(pD3d) IDirect3D8_Release(pD3d); - if(pDevice) IDirect3D8_Release(pDevice); + if (pDevice) + { + UINT refcount = IDirect3DDevice8_Release(pDevice); + ok(!refcount, "Device has %u references left.\n", refcount); + } + if (pD3d) IDirect3D8_Release(pD3d); if(hwnd) DestroyWindow(hwnd); }
@@ -1096,8 +1116,12 @@ static void test_shader(void) ok(hr == D3DERR_INVALIDCALL, "IDirect3DDevice8_DeleteVertexShader returned %#08x\n", hr);
cleanup: - if(pD3d) IDirect3D8_Release(pD3d); - if(pDevice) IDirect3D8_Release(pDevice); + if (pDevice) + { + UINT refcount = IDirect3DDevice8_Release(pDevice); + ok(!refcount, "Device has %u references left.\n", refcount); + } + if (pD3d) IDirect3D8_Release(pD3d); if(hwnd) DestroyWindow(hwnd); }
@@ -1158,8 +1182,12 @@ static void test_limits(void)
cleanup: if(pTexture) IDirect3DTexture8_Release(pTexture); - if(pD3d) IDirect3D8_Release(pD3d); - if(pDevice) IDirect3D8_Release(pDevice); + if (pDevice) + { + UINT refcount = IDirect3DDevice8_Release(pDevice); + ok(!refcount, "Device has %u references left.\n", refcount); + } + if (pD3d) IDirect3D8_Release(pD3d); if(hwnd) DestroyWindow(hwnd); }
@@ -1230,9 +1258,13 @@ static void test_lights(void) ok(hr == D3D_OK, "Disabling light %u failed with %08x\n", i, hr); }
- cleanup: - if(device) IDirect3DDevice8_Release(device); - if(d3d8) IDirect3D8_Release(d3d8); +cleanup: + if (device) + { + UINT refcount = IDirect3DDevice8_Release(device); + ok(!refcount, "Device has %u references left.\n", refcount); + } + if (d3d8) IDirect3D8_Release(d3d8); }
static void test_render_zero_triangles(void) @@ -1300,9 +1332,13 @@ static void test_render_zero_triangles(void)
IDirect3DDevice8_Present(device, NULL, NULL, NULL, NULL);
- cleanup: - if(device) IDirect3DDevice8_Release(device); - if(d3d8) IDirect3D8_Release(d3d8); +cleanup: + if (device) + { + UINT refcount = IDirect3DDevice8_Release(device); + ok(!refcount, "Device has %u references left.\n", refcount); + } + if (d3d8) IDirect3D8_Release(d3d8); }
static void test_depth_stencil_reset(void) @@ -1410,8 +1446,12 @@ static void test_depth_stencil_reset(void) if (surface) IDirect3DSurface8_Release(surface);
cleanup: - if(d3d8) IDirect3D8_Release(d3d8); - if(device) IDirect3D8_Release(device); + if (device) + { + UINT refcount = IDirect3DDevice8_Release(device); + ok(!refcount, "Device has %u references left.\n", refcount); + } + if (d3d8) IDirect3D8_Release(d3d8); }
START_TEST(device)