Module: wine Branch: master Commit: 664b58dc6f247eec29e0a7c1c17c4067d9f98795 URL: http://source.winehq.org/git/wine.git/?a=commit;h=664b58dc6f247eec29e0a7c1c1...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Mon Dec 29 09:14:29 2008 +0100
d3d: Make sure the device is properly released when exiting the tests.
---
dlls/d3d8/tests/surface.c | 4 ++++ dlls/d3d8/tests/texture.c | 4 ++++ dlls/d3d8/tests/visual.c | 5 ++++- dlls/d3d8/tests/volume.c | 4 ++++ dlls/d3d9/tests/shader.c | 10 ++++++++++ dlls/d3d9/tests/stateblock.c | 7 ++++++- dlls/d3d9/tests/surface.c | 4 ++++ dlls/d3d9/tests/texture.c | 5 +++++ dlls/d3d9/tests/vertexdeclaration.c | 7 +++++++ dlls/d3d9/tests/volume.c | 4 ++++ 10 files changed, 52 insertions(+), 2 deletions(-)
diff --git a/dlls/d3d8/tests/surface.c b/dlls/d3d8/tests/surface.c index e1e65b0..4cb2350 100644 --- a/dlls/d3d8/tests/surface.c +++ b/dlls/d3d8/tests/surface.c @@ -324,6 +324,7 @@ START_TEST(surface) { HMODULE d3d8_handle; IDirect3DDevice8 *device_ptr; + ULONG refcount;
d3d8_handle = LoadLibraryA("d3d8.dll"); if (!d3d8_handle) @@ -339,4 +340,7 @@ START_TEST(surface) test_surface_get_container(device_ptr); test_lockrect_invalid(device_ptr); test_private_data(device_ptr); + + refcount = IDirect3DDevice8_Release(device_ptr); + ok(!refcount, "Device has %u references left\n", refcount); } diff --git a/dlls/d3d8/tests/texture.c b/dlls/d3d8/tests/texture.c index fd97eac..1475de1 100644 --- a/dlls/d3d8/tests/texture.c +++ b/dlls/d3d8/tests/texture.c @@ -135,6 +135,7 @@ START_TEST(texture) D3DCAPS8 caps; HMODULE d3d8_handle; IDirect3DDevice8 *device_ptr; + ULONG refcount;
d3d8_handle = LoadLibraryA("d3d8.dll"); if (!d3d8_handle) @@ -150,4 +151,7 @@ START_TEST(texture)
test_texture_stage_states(device_ptr, caps.MaxTextureBlendStages); test_cube_textures(device_ptr, caps.TextureCaps); + + refcount = IDirect3DDevice8_Release(device_ptr); + ok(!refcount, "Device has %u references left\n", refcount); } diff --git a/dlls/d3d8/tests/visual.c b/dlls/d3d8/tests/visual.c index 8f853c1..9b2b968 100644 --- a/dlls/d3d8/tests/visual.c +++ b/dlls/d3d8/tests/visual.c @@ -1345,8 +1345,11 @@ START_TEST(visual) cleanup: if(device_ptr) { D3DDEVICE_CREATION_PARAMETERS creation_parameters; + ULONG refcount; + IDirect3DDevice8_GetCreationParameters(device_ptr, &creation_parameters); - IDirect3DDevice8_Release(device_ptr); + refcount = IDirect3DDevice8_Release(device_ptr); + ok(!refcount, "Device has %u references left\n", refcount); DestroyWindow(creation_parameters.hFocusWindow); } } diff --git a/dlls/d3d8/tests/volume.c b/dlls/d3d8/tests/volume.c index ee43140..f294892 100644 --- a/dlls/d3d8/tests/volume.c +++ b/dlls/d3d8/tests/volume.c @@ -128,6 +128,7 @@ START_TEST(volume) { HMODULE d3d8_handle; IDirect3DDevice8 *device_ptr; + ULONG refcount; D3DCAPS8 caps;
d3d8_handle = LoadLibraryA("d3d8.dll"); @@ -147,4 +148,7 @@ START_TEST(volume) }
test_volume_get_container(device_ptr); + + refcount = IDirect3DDevice8_Release(device_ptr); + ok(!refcount, "Device has %u references left\n", refcount); } diff --git a/dlls/d3d9/tests/shader.c b/dlls/d3d9/tests/shader.c index 3d80883..e1ad9bb 100644 --- a/dlls/d3d9/tests/shader.c +++ b/dlls/d3d9/tests/shader.c @@ -110,6 +110,9 @@ static void test_get_set_vertex_shader(IDirect3DDevice9 *device_ptr) ok(hret == D3D_OK && shader_refcount == i && current_shader_ptr == shader_ptr, "GetVertexShader returned: hret 0x%x, current_shader_ptr %p refcount %d. " "Expected hret 0x%x, current_shader_ptr %p, refcount %d.\n", hret, current_shader_ptr, shader_refcount, D3D_OK, shader_ptr, i); + IDirect3DVertexShader9_Release(current_shader_ptr); + + IDirect3DVertexShader9_Release(shader_ptr); }
static void test_vertex_shader_constant(IDirect3DDevice9 *device_ptr, DWORD consts) @@ -174,6 +177,9 @@ static void test_get_set_pixel_shader(IDirect3DDevice9 *device_ptr) ok(hret == D3D_OK && shader_refcount == i && current_shader_ptr == shader_ptr, "GetPixelShader returned: hret 0x%x, current_shader_ptr %p refcount %d. " "Expected hret 0x%x, current_shader_ptr %p, refcount %d.\n", hret, current_shader_ptr, shader_refcount, D3D_OK, shader_ptr, i); + IDirect3DPixelShader9_Release(current_shader_ptr); + + IDirect3DPixelShader9_Release(shader_ptr); }
static void test_pixel_shader_constant(IDirect3DDevice9 *device_ptr) @@ -207,6 +213,7 @@ START_TEST(shader) { D3DCAPS9 caps; IDirect3DDevice9 *device_ptr; + ULONG refcount;
d3d9_handle = LoadLibraryA("d3d9.dll"); if (!d3d9_handle) @@ -234,4 +241,7 @@ START_TEST(shader) test_pixel_shader_constant(device_ptr); } else skip("No pixel shader support\n"); + + refcount = IDirect3DDevice9_Release(device_ptr); + ok(!refcount, "Device has %u references left\n", refcount); } diff --git a/dlls/d3d9/tests/stateblock.c b/dlls/d3d9/tests/stateblock.c index f8ee57d..baec5c6 100644 --- a/dlls/d3d9/tests/stateblock.c +++ b/dlls/d3d9/tests/stateblock.c @@ -91,6 +91,7 @@ static void test_begin_end_state_block(IDirect3DDevice9 *device_ptr) ok(hret == D3D_OK && state_block_ptr != 0 && state_block_ptr != (IDirect3DStateBlock9 *)0xdeadbeef, "EndStateBlock returned: hret 0x%x, state_block_ptr %p. " "Expected hret 0x%x, state_block_ptr != %p, state_block_ptr != 0xdeadbeef.\n", hret, state_block_ptr, D3D_OK, NULL); + IDirect3DStateBlock9_Release(state_block_ptr);
/* Calling EndStateBlock while not recording should return D3DERR_INVALIDCALL. state_block_ptr should not be touched. */ state_block_ptr = (IDirect3DStateBlock9 *)0xdeadbeef; @@ -1583,5 +1584,9 @@ START_TEST(stateblock) test_state_management(device_ptr, &device_pparams); test_shader_constant_apply(device_ptr);
- if (device_ptr) IUnknown_Release(device_ptr); + if (device_ptr) + { + ULONG refcount = IDirect3DDevice9_Release(device_ptr); + ok(!refcount, "Device has %u references left\n", refcount); + } } diff --git a/dlls/d3d9/tests/surface.c b/dlls/d3d9/tests/surface.c index eed45c3..ea9c0c1 100644 --- a/dlls/d3d9/tests/surface.c +++ b/dlls/d3d9/tests/surface.c @@ -382,6 +382,7 @@ START_TEST(surface) { HMODULE d3d9_handle; IDirect3DDevice9 *device_ptr; + ULONG refcount;
d3d9_handle = LoadLibraryA("d3d9.dll"); if (!d3d9_handle) @@ -398,4 +399,7 @@ START_TEST(surface) test_lockrect_offset(device_ptr); test_lockrect_invalid(device_ptr); test_private_data(device_ptr); + + refcount = IDirect3DDevice9_Release(device_ptr); + ok(!refcount, "Device has %u references left\n", refcount); } diff --git a/dlls/d3d9/tests/texture.c b/dlls/d3d9/tests/texture.c index ede9467..86132b7 100644 --- a/dlls/d3d9/tests/texture.c +++ b/dlls/d3d9/tests/texture.c @@ -321,6 +321,7 @@ static void test_filter(IDirect3DDevice9 *device) { }
hr = IDirect3DDevice9_SetTexture(device, 0, NULL); + IDirect3DTexture9_Release(texture);
out: IDirect3D9_Release(d3d9); @@ -342,6 +343,7 @@ START_TEST(texture) D3DCAPS9 caps; HMODULE d3d9_handle; IDirect3DDevice9 *device_ptr; + ULONG refcount;
d3d9_handle = LoadLibraryA("d3d9.dll"); if (!d3d9_handle) @@ -360,4 +362,7 @@ START_TEST(texture) test_mipmap_gen(device_ptr); test_filter(device_ptr); test_gettexture(device_ptr); + + refcount = IDirect3DDevice9_Release(device_ptr); + ok(!refcount, "Device has %u references left\n", refcount); } diff --git a/dlls/d3d9/tests/vertexdeclaration.c b/dlls/d3d9/tests/vertexdeclaration.c index 1ec8840..4207cbe 100644 --- a/dlls/d3d9/tests/vertexdeclaration.c +++ b/dlls/d3d9/tests/vertexdeclaration.c @@ -183,6 +183,7 @@ static void test_get_set_vertex_declaration(IDirect3DDevice9 *device_ptr, IDirec ok(hret == D3D_OK && decl_refcount == i && current_decl_ptr == decl_ptr, "GetVertexDeclaration returned: hret 0x%x, current_decl_ptr %p refcount %d. " "Expected hret 0x%x, current_decl_ptr %p, refcount %d.\n", hret, current_decl_ptr, decl_refcount, D3D_OK, decl_ptr, i); + IDirect3DVertexDeclaration9_Release(current_decl_ptr); }
static void test_get_declaration(IDirect3DVertexDeclaration9 *decl_ptr, D3DVERTEXELEMENT9 *vertex_decl, UINT expected_num_elements) @@ -852,6 +853,7 @@ START_TEST(vertexdeclaration) UINT simple_decl_num_elements = sizeof(simple_decl) / sizeof(*simple_decl); IDirect3DDevice9 *device_ptr = 0; IDirect3DVertexDeclaration9 *decl_ptr = 0; + ULONG refcount;
d3d9_handle = LoadLibraryA("d3d9.dll"); if (!d3d9_handle) @@ -880,4 +882,9 @@ START_TEST(vertexdeclaration) test_fvf_decl_management(device_ptr); test_vertex_declaration_alignment(device_ptr); test_unused_type(device_ptr); + + IDirect3DVertexDeclaration9_Release(decl_ptr); + + refcount = IDirect3DDevice9_Release(device_ptr); + ok(!refcount, "Device has %u references left\n", refcount); } diff --git a/dlls/d3d9/tests/volume.c b/dlls/d3d9/tests/volume.c index 8b07072..38ea501 100644 --- a/dlls/d3d9/tests/volume.c +++ b/dlls/d3d9/tests/volume.c @@ -125,6 +125,7 @@ START_TEST(volume) { HMODULE d3d9_handle; IDirect3DDevice9 *device_ptr; + ULONG refcount; D3DCAPS9 caps;
memset(&caps, 0, sizeof(caps)); @@ -145,4 +146,7 @@ START_TEST(volume) }
test_volume_get_container(device_ptr); + + refcount = IDirect3DDevice9_Release(device_ptr); + ok(!refcount, "Device has %u references left\n", refcount); }