Alex Henrie : ddraw/tests: Recognise E_NOTIMPL returned from UpdateOverlay () on VMware as broken.

Alexandre Julliard julliard at winehq.org
Wed Dec 27 14:46:15 CST 2017


Module: wine
Branch: master
Commit: 2a0f704d9b165959223a9da91edf4df76860b893
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=2a0f704d9b165959223a9da91edf4df76860b893

Author: Alex Henrie <alexhenrie24 at gmail.com>
Date:   Wed Dec 27 17:30:15 2017 +0100

ddraw/tests: Recognise E_NOTIMPL returned from UpdateOverlay() on VMware as broken.

Signed-off-by: Alex Henrie <alexhenrie24 at gmail.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ddraw/tests/ddraw1.c | 12 +++++++++++-
 dlls/ddraw/tests/ddraw2.c | 12 +++++++++++-
 dlls/ddraw/tests/ddraw4.c | 12 +++++++++++-
 dlls/ddraw/tests/ddraw7.c | 12 +++++++++++-
 4 files changed, 44 insertions(+), 4 deletions(-)

diff --git a/dlls/ddraw/tests/ddraw1.c b/dlls/ddraw/tests/ddraw1.c
index db54abd..2c4410a 100644
--- a/dlls/ddraw/tests/ddraw1.c
+++ b/dlls/ddraw/tests/ddraw1.c
@@ -123,6 +123,15 @@ static BOOL ddraw_is_intel(IDirectDraw *ddraw)
             && identifier.dwVendorId == 0x8086;
 }
 
+static BOOL ddraw_is_vmware(IDirectDraw *ddraw)
+{
+    DDDEVICEIDENTIFIER identifier;
+
+    return strcmp(winetest_platform, "wine")
+            && ddraw_get_identifier(ddraw, &identifier)
+            && identifier.dwVendorId == 0x15ad;
+}
+
 static IDirectDrawSurface *create_overlay(IDirectDraw *ddraw,
         unsigned int width, unsigned int height, DWORD format)
 {
@@ -8666,7 +8675,8 @@ static void test_offscreen_overlay(void)
     ok(SUCCEEDED(hr), "Failed to create surface, hr %#x.\n",hr);
 
     hr = IDirectDrawSurface_UpdateOverlay(overlay, NULL, offscreen, NULL, DDOVER_SHOW, NULL);
-    ok(SUCCEEDED(hr) || broken(hr == DDERR_OUTOFCAPS && dwm_enabled()),
+    ok(SUCCEEDED(hr) || broken(hr == DDERR_OUTOFCAPS && dwm_enabled())
+            || broken(hr == E_NOTIMPL && ddraw_is_vmware(ddraw)),
             "Failed to update overlay, hr %#x.\n", hr);
 
     /* Try to overlay the primary with a non-overlay surface. */
diff --git a/dlls/ddraw/tests/ddraw2.c b/dlls/ddraw/tests/ddraw2.c
index d2382d1..89d0d7e 100644
--- a/dlls/ddraw/tests/ddraw2.c
+++ b/dlls/ddraw/tests/ddraw2.c
@@ -125,6 +125,15 @@ static BOOL ddraw_is_intel(IDirectDraw2 *ddraw)
             && identifier.dwVendorId == 0x8086;
 }
 
+static BOOL ddraw_is_vmware(IDirectDraw2 *ddraw)
+{
+    DDDEVICEIDENTIFIER identifier;
+
+    return strcmp(winetest_platform, "wine")
+            && ddraw_get_identifier(ddraw, &identifier)
+            && identifier.dwVendorId == 0x15ad;
+}
+
 static IDirectDrawSurface *create_overlay(IDirectDraw2 *ddraw,
         unsigned int width, unsigned int height, DWORD format)
 {
@@ -9800,7 +9809,8 @@ static void test_offscreen_overlay(void)
     ok(SUCCEEDED(hr), "Failed to create surface, hr %#x.\n",hr);
 
     hr = IDirectDrawSurface_UpdateOverlay(overlay, NULL, offscreen, NULL, DDOVER_SHOW, NULL);
-    ok(SUCCEEDED(hr) || broken(hr == DDERR_OUTOFCAPS && dwm_enabled()),
+    ok(SUCCEEDED(hr) || broken(hr == DDERR_OUTOFCAPS && dwm_enabled())
+            || broken(hr == E_NOTIMPL && ddraw_is_vmware(ddraw)),
             "Failed to update overlay, hr %#x.\n", hr);
 
     /* Try to overlay the primary with a non-overlay surface. */
diff --git a/dlls/ddraw/tests/ddraw4.c b/dlls/ddraw/tests/ddraw4.c
index caa3ced..fa1178d 100644
--- a/dlls/ddraw/tests/ddraw4.c
+++ b/dlls/ddraw/tests/ddraw4.c
@@ -131,6 +131,15 @@ static BOOL ddraw_is_intel(IDirectDraw4 *ddraw)
             && identifier.dwVendorId == 0x8086;
 }
 
+static BOOL ddraw_is_vmware(IDirectDraw4 *ddraw)
+{
+    DDDEVICEIDENTIFIER identifier;
+
+    return strcmp(winetest_platform, "wine")
+            && ddraw_get_identifier(ddraw, &identifier)
+            && identifier.dwVendorId == 0x15ad;
+}
+
 static IDirectDrawSurface4 *create_overlay(IDirectDraw4 *ddraw,
         unsigned int width, unsigned int height, DWORD format)
 {
@@ -11262,7 +11271,8 @@ static void test_offscreen_overlay(void)
     ok(SUCCEEDED(hr), "Failed to create surface, hr %#x.\n",hr);
 
     hr = IDirectDrawSurface4_UpdateOverlay(overlay, NULL, offscreen, NULL, DDOVER_SHOW, NULL);
-    ok(SUCCEEDED(hr) || broken(hr == DDERR_OUTOFCAPS && dwm_enabled()),
+    ok(SUCCEEDED(hr) || broken(hr == DDERR_OUTOFCAPS && dwm_enabled())
+            || broken(hr == E_NOTIMPL && ddraw_is_vmware(ddraw)),
             "Failed to update overlay, hr %#x.\n", hr);
 
     /* Try to overlay the primary with a non-overlay surface. */
diff --git a/dlls/ddraw/tests/ddraw7.c b/dlls/ddraw/tests/ddraw7.c
index f1568bb..fdfac69 100644
--- a/dlls/ddraw/tests/ddraw7.c
+++ b/dlls/ddraw/tests/ddraw7.c
@@ -145,6 +145,15 @@ static BOOL ddraw_is_intel(IDirectDraw7 *ddraw)
             && identifier.dwVendorId == 0x8086;
 }
 
+static BOOL ddraw_is_vmware(IDirectDraw7 *ddraw)
+{
+    DDDEVICEIDENTIFIER2 identifier;
+
+    return strcmp(winetest_platform, "wine")
+            && ddraw_get_identifier(ddraw, &identifier)
+            && identifier.dwVendorId == 0x15ad;
+}
+
 static IDirectDrawSurface7 *create_overlay(IDirectDraw7 *ddraw,
         unsigned int width, unsigned int height, DWORD format)
 {
@@ -11220,7 +11229,8 @@ static void test_offscreen_overlay(void)
     ok(SUCCEEDED(hr), "Failed to create surface, hr %#x.\n",hr);
 
     hr = IDirectDrawSurface7_UpdateOverlay(overlay, NULL, offscreen, NULL, DDOVER_SHOW, NULL);
-    ok(SUCCEEDED(hr) || broken(hr == DDERR_OUTOFCAPS && dwm_enabled()),
+    ok(SUCCEEDED(hr) || broken(hr == DDERR_OUTOFCAPS && dwm_enabled())
+            || broken(hr == E_NOTIMPL && ddraw_is_vmware(ddraw)),
             "Failed to update overlay, hr %#x.\n", hr);
 
     /* Try to overlay the primary with a non-overlay surface. */




More information about the wine-cvs mailing list