=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: dxgi/tests: Add test for CreateDXGIFactory2().

Alexandre Julliard julliard at winehq.org
Wed Feb 14 15:12:10 CST 2018


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

Author: Józef Kucia <jkucia at codeweavers.com>
Date:   Wed Feb 14 12:35:48 2018 +0100

dxgi/tests: Add test for CreateDXGIFactory2().

Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/dxgi/tests/device.c | 31 ++++++++++++++++++++++++++++---
 1 file changed, 28 insertions(+), 3 deletions(-)

diff --git a/dlls/dxgi/tests/device.c b/dlls/dxgi/tests/device.c
index 58c3bba..ee4a22b 100644
--- a/dlls/dxgi/tests/device.c
+++ b/dlls/dxgi/tests/device.c
@@ -64,8 +64,6 @@ static HRESULT check_interface_(unsigned int line, void *iface, REFIID iid,
             "Got hr %#x, expected %#x.\n", hr, expected_hr);
     if (SUCCEEDED(hr))
         IUnknown_Release(out);
-    else
-        ok_(__FILE__, line)(!out, "Got unexpected pointer %p.\n", out);
     return hr;
 }
 
@@ -2562,7 +2560,7 @@ static void test_create_factory(void)
 
     if (!pCreateDXGIFactory1)
     {
-        win_skip("CreateDXGIFactory1 not available, skipping tests.\n");
+        win_skip("CreateDXGIFactory1 not available.\n");
         return;
     }
 
@@ -2598,6 +2596,33 @@ static void test_create_factory(void)
         refcount = IUnknown_Release(iface);
         ok(!refcount, "Factory has %u references left.\n", refcount);
     }
+
+    if (!pCreateDXGIFactory2)
+    {
+        win_skip("CreateDXGIFactory2 not available.\n");
+        return;
+    }
+
+    hr = pCreateDXGIFactory2(0, &IID_IDXGIFactory3, (void **)&iface);
+    ok(hr == S_OK, "Failed to create factory, hr %#x.\n", hr);
+    check_interface(iface, &IID_IDXGIFactory, TRUE, FALSE);
+    check_interface(iface, &IID_IDXGIFactory1, TRUE, FALSE);
+    check_interface(iface, &IID_IDXGIFactory2, TRUE, FALSE);
+    check_interface(iface, &IID_IDXGIFactory3, TRUE, FALSE);
+    /* Not available on all Windows versions. */
+    check_interface(iface, &IID_IDXGIFactory4, TRUE, TRUE);
+    todo_wine check_interface(iface, &IID_IDXGIFactory5, TRUE, TRUE);
+    refcount = IUnknown_Release(iface);
+    ok(!refcount, "Factory has %u references left.\n", refcount);
+
+    hr = pCreateDXGIFactory2(0, &IID_IDXGIFactory, (void **)&iface);
+    ok(hr == S_OK, "Failed to create factory, hr %#x.\n", hr);
+    check_interface(iface, &IID_IDXGIFactory, TRUE, FALSE);
+    check_interface(iface, &IID_IDXGIFactory1, TRUE, FALSE);
+    check_interface(iface, &IID_IDXGIFactory2, TRUE, FALSE);
+    check_interface(iface, &IID_IDXGIFactory3, TRUE, FALSE);
+    refcount = IUnknown_Release(iface);
+    ok(!refcount, "Factory has %u references left.\n", refcount);
 }
 
 static void test_private_data(void)




More information about the wine-cvs mailing list