Mike McCormack : ddraw: Make tests pass when OpenGL libraries aren' t present.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Sep 7 03:45:49 CDT 2006


Module: wine
Branch: master
Commit: a8ae03f2d8d577b9436e966131545e4caa4364ea
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=a8ae03f2d8d577b9436e966131545e4caa4364ea

Author: Mike McCormack <mike at codeweavers.com>
Date:   Wed Aug 30 12:56:32 2006 +0900

ddraw: Make tests pass when OpenGL libraries aren't present.

---

 dlls/ddraw/main.c             |    4 +++-
 dlls/ddraw/tests/ddrawmodes.c |   12 +++++++++---
 dlls/ddraw/tests/dsurface.c   |   13 ++++++++++---
 dlls/ddraw/tests/refcount.c   |    2 +-
 4 files changed, 23 insertions(+), 8 deletions(-)

diff --git a/dlls/ddraw/main.c b/dlls/ddraw/main.c
index 8aab95c..bdb8b31 100644
--- a/dlls/ddraw/main.c
+++ b/dlls/ddraw/main.c
@@ -96,6 +96,8 @@ DDRAW_Create(GUID *guid,
 
     TRACE("(%s,%p,%p)\n", debugstr_guid(guid), DD, UnkOuter);
 
+    *DD = NULL;
+
     /* We don't care about this guids. Well, there's no special guid anyway
      * OK, we could
      */
@@ -164,7 +166,7 @@ DDRAW_Create(GUID *guid,
     if (!hWineD3D)
     {
         ERR("Couldn't load WineD3D - OpenGL libs not present?\n");
-        hr = E_NOTIMPL;
+        hr = DDERR_NODIRECTDRAWSUPPORT;
         goto err_out;
     }
 
diff --git a/dlls/ddraw/tests/ddrawmodes.c b/dlls/ddraw/tests/ddrawmodes.c
index 8890df9..4b2bf17 100644
--- a/dlls/ddraw/tests/ddrawmodes.c
+++ b/dlls/ddraw/tests/ddrawmodes.c
@@ -59,12 +59,17 @@ static void createwindow(void)
     
 }
 
-static void createdirectdraw(void)
+static BOOL createdirectdraw(void)
 {
     HRESULT rc;
 
     rc = DirectDrawCreate(NULL, &lpDD, NULL);
-    ok(rc==DD_OK,"DirectDrawCreate returned: %lx\n",rc);
+    ok(rc==DD_OK || rc==DDERR_NODIRECTDRAWSUPPORT, "DirectDrawCreateEx returned: %lx\n", rc);
+    if (!lpDD) {
+        trace("DirectDrawCreateEx() failed with an error %lx\n", rc);
+        return FALSE;
+    }
+    return TRUE;
 }
 
 
@@ -319,7 +324,8 @@ static void testcooperativelevels_exclus
 START_TEST(ddrawmodes)
 {
     createwindow();
-    createdirectdraw();
+    if (!createdirectdraw())
+        return;
     enumdisplaymodes();
     testdisplaymodes();
     flushdisplaymodes();
diff --git a/dlls/ddraw/tests/dsurface.c b/dlls/ddraw/tests/dsurface.c
index 24555c3..192a202 100644
--- a/dlls/ddraw/tests/dsurface.c
+++ b/dlls/ddraw/tests/dsurface.c
@@ -26,15 +26,21 @@ #include "ddraw.h"
 
 static LPDIRECTDRAW lpDD = NULL;
 
-static void CreateDirectDraw(void)
+static BOOL CreateDirectDraw(void)
 {
     HRESULT rc;
 
     rc = DirectDrawCreate(NULL, &lpDD, NULL);
-    ok(rc==DD_OK,"DirectDrawCreate returned: %lx\n",rc);
+    ok(rc==DD_OK || rc==DDERR_NODIRECTDRAWSUPPORT, "DirectDrawCreateEx returned: %lx\n", rc);
+    if (!lpDD) {
+        trace("DirectDrawCreateEx() failed with an error %lx\n", rc);
+        return FALSE;
+    }
 
     rc = IDirectDraw_SetCooperativeLevel(lpDD, NULL, DDSCL_NORMAL);
     ok(rc==DD_OK,"SetCooperativeLevel returned: %lx\n",rc);
+
+    return TRUE;
 }
 
 
@@ -250,7 +256,8 @@ static void QueryInterface(void)
 
 START_TEST(dsurface)
 {
-    CreateDirectDraw();
+    if (!CreateDirectDraw())
+        return;
     MipMapCreationTest();
     SrcColorKey32BlitTest();
     QueryInterface();
diff --git a/dlls/ddraw/tests/refcount.c b/dlls/ddraw/tests/refcount.c
index c80c822..1e224c0 100644
--- a/dlls/ddraw/tests/refcount.c
+++ b/dlls/ddraw/tests/refcount.c
@@ -304,7 +304,7 @@ static void test_d3d_ifaces(void)
     long ref;
 
     hr = DirectDrawCreate(NULL, &DDraw1, NULL);
-    ok(hr == DD_OK, "DirectDrawCreate returned %08lx\n", hr);
+    ok(hr == DD_OK || hr==DDERR_NODIRECTDRAWSUPPORT, "DirectDrawCreateEx returned: %lx\n", hr);
     if(!DDraw1)
     {
         trace("DirectDrawCreate failed with %08lx\n", hr);




More information about the wine-cvs mailing list