ddraw/tests: LONG/ULONG and error checking fixes.

This commit is contained in:
Stefan Dösinger 2012-02-27 12:11:15 +01:00 committed by Alexandre Julliard
parent 6ee15adf4d
commit f8d6d0300b
3 changed files with 36 additions and 34 deletions

View File

@ -884,7 +884,7 @@ static void test_coop_level_threaded(void)
destroy_window_thread(&p); destroy_window_thread(&p);
} }
static LONG get_refcount(IUnknown *test_iface) static ULONG get_refcount(IUnknown *test_iface)
{ {
IUnknown_AddRef(test_iface); IUnknown_AddRef(test_iface);
return IUnknown_Release(test_iface); return IUnknown_Release(test_iface);
@ -895,7 +895,7 @@ static void test_viewport_interfaces(void)
IDirectDraw *ddraw; IDirectDraw *ddraw;
IDirect3D *d3d; IDirect3D *d3d;
HRESULT hr; HRESULT hr;
LONG ref; ULONG ref;
IDirect3DViewport *viewport; IDirect3DViewport *viewport;
IDirect3DViewport2 *viewport2; IDirect3DViewport2 *viewport2;
IDirect3DViewport3 *viewport3; IDirect3DViewport3 *viewport3;
@ -921,9 +921,9 @@ static void test_viewport_interfaces(void)
hr = IDirect3D_CreateViewport(d3d, &viewport, NULL); hr = IDirect3D_CreateViewport(d3d, &viewport, NULL);
ok(SUCCEEDED(hr), "Failed to create viewport, hr %#x.\n", hr); ok(SUCCEEDED(hr), "Failed to create viewport, hr %#x.\n", hr);
ref = get_refcount((IUnknown *)viewport); ref = get_refcount((IUnknown *)viewport);
ok(ref == 1, "Initial IDirect3DViewport refcount is %d\n", ref); ok(ref == 1, "Initial IDirect3DViewport refcount is %u\n", ref);
ref = get_refcount((IUnknown *)d3d); ref = get_refcount((IUnknown *)d3d);
ok(ref == 2, "IDirect3D refcount is %d\n", ref); ok(ref == 2, "IDirect3D refcount is %u\n", ref);
/* E_FAIL return values are returned by Winetestbot Windows NT machines. While not supporting /* E_FAIL return values are returned by Winetestbot Windows NT machines. While not supporting
* newer interfaces is legitimate for old ddraw versions, E_FAIL violates Microsoft's rules * newer interfaces is legitimate for old ddraw versions, E_FAIL violates Microsoft's rules
@ -936,25 +936,27 @@ static void test_viewport_interfaces(void)
/* NULL iid: Segfaults */ /* NULL iid: Segfaults */
hr = IDirect3DViewport_QueryInterface(viewport, &IID_IDirect3DViewport2, (void **)&viewport2); hr = IDirect3DViewport_QueryInterface(viewport, &IID_IDirect3DViewport2, (void **)&viewport2);
ok(SUCCEEDED(hr) || broken(hr == E_FAIL), "Failed to QI IDirect3DViewport2, hr %#x.\n", hr); ok(SUCCEEDED(hr) || hr == E_NOINTERFACE || broken(hr == E_FAIL),
"Failed to QI IDirect3DViewport2, hr %#x.\n", hr);
if (viewport2) if (viewport2)
{ {
ref = get_refcount((IUnknown *)viewport); ref = get_refcount((IUnknown *)viewport);
ok(ref == 2, "IDirect3DViewport refcount is %d\n", ref); ok(ref == 2, "IDirect3DViewport refcount is %u\n", ref);
ref = get_refcount((IUnknown *)viewport2); ref = get_refcount((IUnknown *)viewport2);
ok(ref == 2, "IDirect3DViewport2 refcount is %d\n", ref); ok(ref == 2, "IDirect3DViewport2 refcount is %u\n", ref);
IDirect3DViewport2_Release(viewport2); IDirect3DViewport2_Release(viewport2);
viewport2 = NULL; viewport2 = NULL;
} }
hr = IDirect3DViewport_QueryInterface(viewport, &IID_IDirect3DViewport3, (void **)&viewport3); hr = IDirect3DViewport_QueryInterface(viewport, &IID_IDirect3DViewport3, (void **)&viewport3);
ok(SUCCEEDED(hr) || broken(hr == E_FAIL), "Failed to QI IDirect3DViewport3, hr %#x.\n", hr); ok(SUCCEEDED(hr) || hr == E_NOINTERFACE || broken(hr == E_FAIL),
"Failed to QI IDirect3DViewport3, hr %#x.\n", hr);
if (viewport3) if (viewport3)
{ {
ref = get_refcount((IUnknown *)viewport); ref = get_refcount((IUnknown *)viewport);
ok(ref == 2, "IDirect3DViewport refcount is %d\n", ref); ok(ref == 2, "IDirect3DViewport refcount is %u\n", ref);
ref = get_refcount((IUnknown *)viewport3); ref = get_refcount((IUnknown *)viewport3);
ok(ref == 2, "IDirect3DViewport3 refcount is %d\n", ref); ok(ref == 2, "IDirect3DViewport3 refcount is %u\n", ref);
IDirect3DViewport3_Release(viewport3); IDirect3DViewport3_Release(viewport3);
} }
@ -963,9 +965,9 @@ static void test_viewport_interfaces(void)
if (unknown) if (unknown)
{ {
ref = get_refcount((IUnknown *)viewport); ref = get_refcount((IUnknown *)viewport);
ok(ref == 2, "IDirect3DViewport refcount is %d\n", ref); ok(ref == 2, "IDirect3DViewport refcount is %u\n", ref);
ref = get_refcount(unknown); ref = get_refcount(unknown);
ok(ref == 2, "IUnknown refcount is %d\n", ref); ok(ref == 2, "IUnknown refcount is %u\n", ref);
IUnknown_Release(unknown); IUnknown_Release(unknown);
} }

View File

@ -1179,7 +1179,7 @@ done:
if (ddraw) IDirectDraw2_Release(ddraw); if (ddraw) IDirectDraw2_Release(ddraw);
} }
static LONG get_refcount(IUnknown *test_iface) static ULONG get_refcount(IUnknown *test_iface)
{ {
IUnknown_AddRef(test_iface); IUnknown_AddRef(test_iface);
return IUnknown_Release(test_iface); return IUnknown_Release(test_iface);
@ -1190,7 +1190,7 @@ static void test_viewport_interfaces(void)
IDirectDraw2 *ddraw; IDirectDraw2 *ddraw;
IDirect3D2 *d3d; IDirect3D2 *d3d;
HRESULT hr; HRESULT hr;
LONG ref, old_d3d_ref; ULONG ref, old_d3d_ref;
IDirect3DViewport *viewport; IDirect3DViewport *viewport;
IDirect3DViewport2 *viewport2; IDirect3DViewport2 *viewport2;
IDirect3DViewport3 *viewport3; IDirect3DViewport3 *viewport3;
@ -1216,9 +1216,9 @@ static void test_viewport_interfaces(void)
hr = IDirect3D2_CreateViewport(d3d, &viewport2, NULL); hr = IDirect3D2_CreateViewport(d3d, &viewport2, NULL);
ok(SUCCEEDED(hr), "Failed to create viewport, hr %#x.\n", hr); ok(SUCCEEDED(hr), "Failed to create viewport, hr %#x.\n", hr);
ref = get_refcount((IUnknown *)viewport2); ref = get_refcount((IUnknown *)viewport2);
ok(ref == 1, "Initial IDirect3DViewport2 refcount is %d\n", ref); ok(ref == 1, "Initial IDirect3DViewport2 refcount is %u\n", ref);
ref = get_refcount((IUnknown *)d3d); ref = get_refcount((IUnknown *)d3d);
ok(ref == old_d3d_ref, "IDirect3D2 refcount is %d\n", ref); ok(ref == old_d3d_ref, "IDirect3D2 refcount is %u\n", ref);
gamma = (IDirectDrawGammaControl *)0xdeadbeef; gamma = (IDirectDrawGammaControl *)0xdeadbeef;
hr = IDirect3DViewport2_QueryInterface(viewport2, &IID_IDirectDrawGammaControl, (void **)&gamma); hr = IDirect3DViewport2_QueryInterface(viewport2, &IID_IDirectDrawGammaControl, (void **)&gamma);
@ -1232,21 +1232,21 @@ static void test_viewport_interfaces(void)
if (viewport) if (viewport)
{ {
ref = get_refcount((IUnknown *)viewport); ref = get_refcount((IUnknown *)viewport);
ok(ref == 2, "IDirect3DViewport refcount is %d\n", ref); ok(ref == 2, "IDirect3DViewport refcount is %u\n", ref);
ref = get_refcount((IUnknown *)viewport2); ref = get_refcount((IUnknown *)viewport2);
ok(ref == 2, "IDirect3DViewport2 refcount is %d\n", ref); ok(ref == 2, "IDirect3DViewport2 refcount is %u\n", ref);
IDirect3DViewport_Release(viewport); IDirect3DViewport_Release(viewport);
viewport = NULL; viewport = NULL;
} }
hr = IDirect3DViewport2_QueryInterface(viewport2, &IID_IDirect3DViewport3, (void **)&viewport3); hr = IDirect3DViewport2_QueryInterface(viewport2, &IID_IDirect3DViewport3, (void **)&viewport3);
ok(SUCCEEDED(hr), "Failed to QI IDirect3DViewport3, hr %#x.\n", hr); ok(SUCCEEDED(hr) || hr == E_NOINTERFACE, "Failed to QI IDirect3DViewport3, hr %#x.\n", hr);
if (viewport3) if (viewport3)
{ {
ref = get_refcount((IUnknown *)viewport2); ref = get_refcount((IUnknown *)viewport2);
ok(ref == 2, "IDirect3DViewport2 refcount is %d\n", ref); ok(ref == 2, "IDirect3DViewport2 refcount is %u\n", ref);
ref = get_refcount((IUnknown *)viewport3); ref = get_refcount((IUnknown *)viewport3);
ok(ref == 2, "IDirect3DViewport3 refcount is %d\n", ref); ok(ref == 2, "IDirect3DViewport3 refcount is %u\n", ref);
IDirect3DViewport3_Release(viewport3); IDirect3DViewport3_Release(viewport3);
} }
@ -1255,9 +1255,9 @@ static void test_viewport_interfaces(void)
if (unknown) if (unknown)
{ {
ref = get_refcount((IUnknown *)viewport2); ref = get_refcount((IUnknown *)viewport2);
ok(ref == 2, "IDirect3DViewport2 refcount is %d\n", ref); ok(ref == 2, "IDirect3DViewport2 refcount is %u\n", ref);
ref = get_refcount(unknown); ref = get_refcount(unknown);
ok(ref == 2, "IUnknown refcount is %d\n", ref); ok(ref == 2, "IUnknown refcount is %u\n", ref);
IUnknown_Release(unknown); IUnknown_Release(unknown);
} }

View File

@ -1310,7 +1310,7 @@ static void test_texture_load_ckey(void)
IDirectDraw4_Release(ddraw); IDirectDraw4_Release(ddraw);
} }
static LONG get_refcount(IUnknown *test_iface) static ULONG get_refcount(IUnknown *test_iface)
{ {
IUnknown_AddRef(test_iface); IUnknown_AddRef(test_iface);
return IUnknown_Release(test_iface); return IUnknown_Release(test_iface);
@ -1321,7 +1321,7 @@ static void test_viewport_interfaces(void)
IDirectDraw4 *ddraw; IDirectDraw4 *ddraw;
IDirect3D3 *d3d; IDirect3D3 *d3d;
HRESULT hr, old_d3d_ref; HRESULT hr, old_d3d_ref;
LONG ref; ULONG ref;
IDirect3DViewport *viewport; IDirect3DViewport *viewport;
IDirect3DViewport2 *viewport2; IDirect3DViewport2 *viewport2;
IDirect3DViewport3 *viewport3; IDirect3DViewport3 *viewport3;
@ -1346,9 +1346,9 @@ static void test_viewport_interfaces(void)
hr = IDirect3D3_CreateViewport(d3d, &viewport3, NULL); hr = IDirect3D3_CreateViewport(d3d, &viewport3, NULL);
ok(SUCCEEDED(hr), "Failed to create viewport, hr %#x.\n", hr); ok(SUCCEEDED(hr), "Failed to create viewport, hr %#x.\n", hr);
ref = get_refcount((IUnknown *)viewport3); ref = get_refcount((IUnknown *)viewport3);
ok(ref == 1, "Initial IDirect3DViewport3 refcount is %d\n", ref); ok(ref == 1, "Initial IDirect3DViewport3 refcount is %u\n", ref);
ref = get_refcount((IUnknown *)d3d); ref = get_refcount((IUnknown *)d3d);
ok(ref == old_d3d_ref, "IDirect3D3 refcount is %d\n", ref); ok(ref == old_d3d_ref, "IDirect3D3 refcount is %u\n", ref);
gamma = (IDirectDrawGammaControl *)0xdeadbeef; gamma = (IDirectDrawGammaControl *)0xdeadbeef;
hr = IDirect3DViewport2_QueryInterface(viewport3, &IID_IDirectDrawGammaControl, (void **)&gamma); hr = IDirect3DViewport2_QueryInterface(viewport3, &IID_IDirectDrawGammaControl, (void **)&gamma);
@ -1362,9 +1362,9 @@ static void test_viewport_interfaces(void)
if (viewport) if (viewport)
{ {
ref = get_refcount((IUnknown *)viewport); ref = get_refcount((IUnknown *)viewport);
ok(ref == 2, "IDirect3DViewport refcount is %d\n", ref); ok(ref == 2, "IDirect3DViewport refcount is %u\n", ref);
ref = get_refcount((IUnknown *)viewport3); ref = get_refcount((IUnknown *)viewport3);
ok(ref == 2, "IDirect3DViewport3 refcount is %d\n", ref); ok(ref == 2, "IDirect3DViewport3 refcount is %u\n", ref);
IDirect3DViewport_Release(viewport); IDirect3DViewport_Release(viewport);
viewport = NULL; viewport = NULL;
} }
@ -1374,20 +1374,20 @@ static void test_viewport_interfaces(void)
if (viewport2) if (viewport2)
{ {
ref = get_refcount((IUnknown *)viewport2); ref = get_refcount((IUnknown *)viewport2);
ok(ref == 2, "IDirect3DViewport2 refcount is %d\n", ref); ok(ref == 2, "IDirect3DViewport2 refcount is %u\n", ref);
ref = get_refcount((IUnknown *)viewport3); ref = get_refcount((IUnknown *)viewport3);
ok(ref == 2, "IDirect3DViewport3 refcount is %d\n", ref); ok(ref == 2, "IDirect3DViewport3 refcount is %u\n", ref);
IDirect3DViewport3_Release(viewport2); IDirect3DViewport3_Release(viewport2);
} }
hr = IDirect3DViewport3_QueryInterface(viewport2, &IID_IUnknown, (void **)&unknown); hr = IDirect3DViewport3_QueryInterface(viewport3, &IID_IUnknown, (void **)&unknown);
ok(SUCCEEDED(hr), "Failed to QI IUnknown, hr %#x.\n", hr); ok(SUCCEEDED(hr), "Failed to QI IUnknown, hr %#x.\n", hr);
if (unknown) if (unknown)
{ {
ref = get_refcount((IUnknown *)viewport3); ref = get_refcount((IUnknown *)viewport3);
ok(ref == 2, "IDirect3DViewport3 refcount is %d\n", ref); ok(ref == 2, "IDirect3DViewport3 refcount is %u\n", ref);
ref = get_refcount(unknown); ref = get_refcount(unknown);
ok(ref == 2, "IUnknown refcount is %d\n", ref); ok(ref == 2, "IUnknown refcount is %u\n", ref);
IUnknown_Release(unknown); IUnknown_Release(unknown);
} }