[06/11] ddraw/tests: Don't bail out after first test failure.

Octavian Voicu octavian.voicu at gmail.com
Mon Nov 7 16:27:09 CST 2011


--
Previous patches try to make sure no new failures will appear.
Test coverage should increase a bit.
---
 dlls/ddraw/tests/visual.c |   40 ++++++++++++++--------------------------
 1 files changed, 14 insertions(+), 26 deletions(-)

diff --git a/dlls/ddraw/tests/visual.c b/dlls/ddraw/tests/visual.c
index 1f241b3..6664d1e 100644
--- a/dlls/ddraw/tests/visual.c
+++ b/dlls/ddraw/tests/visual.c
@@ -83,7 +83,7 @@ static BOOL createObjects(void)
 
     hr = pDirectDrawCreateEx(NULL, (void **) &DirectDraw, &IID_IDirectDraw7, NULL);
     ok(hr==DD_OK || hr==DDERR_NODIRECTDRAWSUPPORT, "DirectDrawCreateEx returned: %x\n", hr);
-    if(!DirectDraw) goto err;
+    if(!DirectDraw) return FALSE;
 
     wc.lpfnWndProc = DefWindowProc;
     wc.lpszClassName = "d3d7_test_wc";
@@ -92,7 +92,7 @@ static BOOL createObjects(void)
 
     hr = IDirectDraw7_SetCooperativeLevel(DirectDraw, window, DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN);
     ok(hr == DD_OK, "IDirectDraw7_SetCooperativeLevel failed with %08x\n", hr);
-    if(FAILED(hr)) goto err;
+    if(FAILED(hr)) return FALSE;
     hr = IDirectDraw7_SetDisplayMode(DirectDraw, 640, 480, 32, 0, 0);
     if(FAILED(hr)) {
         /* 24 bit is fine too */
@@ -103,13 +103,13 @@ static BOOL createObjects(void)
     if(FAILED(hr)) {
         /* use trace, the caller calls skip() */
         trace("SetDisplayMode failed\n");
-        goto err;
+        return FALSE;
     }
 
     hr = IDirectDraw7_QueryInterface(DirectDraw, &IID_IDirect3D7, (void**) &Direct3D);
     if (hr == E_NOINTERFACE) {
         win_skip("IID_IDirect3D7 not available, skipping tests.\n");
-        goto err;
+        return FALSE;
     }
     ok(hr==DD_OK, "QueryInterface returned: %08x\n", hr);
 
@@ -122,12 +122,12 @@ static BOOL createObjects(void)
     ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE | DDSCAPS_3DDEVICE;
     ddsd.dwBackBufferCount = 1;
     hr = IDirectDraw7_CreateSurface(DirectDraw, &ddsd, &Surface, NULL);
-    if(FAILED(hr)) goto err;
+    if(FAILED(hr)) return FALSE;
 
     memset(&zfmt, 0, sizeof(zfmt));
     hr = IDirect3D7_EnumZBufferFormats(Direct3D, &IID_IDirect3DTnLHalDevice, enum_z_fmt, &zfmt);
-    if (FAILED(hr)) goto err;
-    if (zfmt.dwSize == 0) goto err;
+    if (FAILED(hr)) return FALSE;
+    if (zfmt.dwSize == 0) return FALSE;
 
     memset(&ddsd, 0, sizeof(ddsd));
     ddsd.dwSize = sizeof(ddsd);
@@ -138,24 +138,15 @@ static BOOL createObjects(void)
     ddsd.dwHeight = 480;
     hr = IDirectDraw7_CreateSurface(DirectDraw, &ddsd, &depth_buffer, NULL);
     ok(SUCCEEDED(hr), "CreateSurface failed, hr %#x.\n", hr);
-    if (FAILED(hr)) goto err;
+    if (FAILED(hr)) return FALSE;
 
     hr = IDirectDrawSurface_AddAttachedSurface(Surface, depth_buffer);
     ok(SUCCEEDED(hr), "AddAttachedSurface failed, hr %#x.\n", hr);
-    if (FAILED(hr)) goto err;
+    if (FAILED(hr)) return FALSE;
 
     hr = IDirect3D7_CreateDevice(Direct3D, &IID_IDirect3DTnLHalDevice, Surface, &Direct3DDevice);
-    if (FAILED(hr) || !Direct3DDevice) goto err;
+    if (FAILED(hr) || !Direct3DDevice) return FALSE;
     return TRUE;
-
-    err:
-    if(DirectDraw) IDirectDraw7_Release(DirectDraw);
-    if (depth_buffer) IDirectDrawSurface7_Release(depth_buffer);
-    if(Surface) IDirectDrawSurface7_Release(Surface);
-    if(Direct3D) IDirect3D7_Release(Direct3D);
-    if(Direct3DDevice) IDirect3DDevice7_Release(Direct3DDevice);
-    if(window) DestroyWindow(window);
-    return FALSE;
 }
 
 static void releaseObjects(void)
@@ -3238,10 +3229,11 @@ START_TEST(visual)
 {
     HRESULT hr;
     DWORD color;
+
     if(!createObjects())
     {
         skip("Cannot initialize DirectDraw and Direct3D, skipping\n");
-        return;
+        goto cleanup;
     }
 
     /* Check for the reliability of the returned data */
@@ -3284,7 +3276,8 @@ START_TEST(visual)
     rhw_zero_test(Direct3DDevice);
     cubemap_test(Direct3DDevice);
 
-    releaseObjects(); /* release DX7 interfaces to test D3D1 */
+cleanup:
+    releaseObjects(); /* release DX7 interfaces for other tests */
 
     if(!D3D1_createObjects()) {
         skip("Cannot initialize D3D1, skipping\n");
@@ -3298,9 +3291,4 @@ START_TEST(visual)
     D3D3_ViewportClearTest();
     p8_primary_test();
     DX1_BackBufferFlipTest();
-
-    return ;
-
-cleanup:
-    releaseObjects();
 }
-- 
1.7.4.1




More information about the wine-patches mailing list