[PATCH 4/5] dxgi/tests: Add some tests for IDXGIObject::GetParent().
Henri Verbeet
hverbeet at codeweavers.com
Thu Dec 3 04:38:22 CST 2009
---
dlls/dxgi/tests/device.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 44 insertions(+), 0 deletions(-)
diff --git a/dlls/dxgi/tests/device.c b/dlls/dxgi/tests/device.c
index 12893b1..491616c 100644
--- a/dlls/dxgi/tests/device.c
+++ b/dlls/dxgi/tests/device.c
@@ -121,6 +121,49 @@ static void test_create_surface(IDXGIDevice *device)
IDXGISurface_Release(surface);
}
+static void test_parents(IDXGIDevice *device)
+{
+ IDXGIFactory *factory;
+ IDXGIAdapter *adapter;
+ IDXGIOutput *output;
+ IUnknown *parent;
+ HRESULT hr;
+
+ hr = IDXGIDevice_GetAdapter(device, &adapter);
+ ok(SUCCEEDED(hr), "GetAdapter failed, hr %#x.\n", hr);
+
+ hr = IDXGIAdapter_EnumOutputs(adapter, 0, &output);
+ if (hr == DXGI_ERROR_NOT_FOUND)
+ {
+ skip("Adapter has not outputs, skipping output tests.\n");
+ }
+ else
+ {
+ ok(SUCCEEDED(hr), "EnumOutputs failed, hr %#x.\n", hr);
+
+ hr = IDXGIOutput_GetParent(output, &IID_IDXGIAdapter, (void **)&parent);
+ IDXGIOutput_Release(output);
+ ok(SUCCEEDED(hr), "GetParent failed, hr %#x.\n", hr);
+ ok(parent == (IUnknown *)adapter, "Got parent %p, expected %p.\n", parent, adapter);
+ IUnknown_Release(parent);
+ }
+
+ hr = IDXGIAdapter_GetParent(adapter, &IID_IDXGIFactory, (void **)&factory);
+ ok(SUCCEEDED(hr), "GetParent failed, hr %#x.\n", hr);
+
+ hr = IDXGIFactory_GetParent(factory, &IID_IUnknown, (void **)&parent);
+ ok(hr == E_NOINTERFACE, "GetParent returned %#x, expected %#x.\n", hr, E_NOINTERFACE);
+ ok(parent == NULL, "Got parent %p, expected %p.\n", parent, NULL);
+ IDXGIFactory_Release(factory);
+
+ hr = IDXGIDevice_GetParent(device, &IID_IDXGIAdapter, (void **)&parent);
+ ok(SUCCEEDED(hr), "GetParent failed, hr %#x.\n", hr);
+ ok(parent == (IUnknown *)adapter, "Got parent %p, expected %p.\n", parent, adapter);
+ IUnknown_Release(parent);
+
+ IDXGIAdapter_Release(adapter);
+}
+
START_TEST(device)
{
HMODULE d3d10core = LoadLibraryA("d3d10core.dll");
@@ -143,6 +186,7 @@ START_TEST(device)
test_device_interfaces(device);
test_create_surface(device);
+ test_parents(device);
refcount = IDXGIDevice_Release(device);
ok(!refcount, "Device has %u references left\n", refcount);
--
1.6.4.4
More information about the wine-patches
mailing list