diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c index 0b73b2c88a3..a73777100f7 100644 --- a/dlls/d3d11/tests/d3d11.c +++ b/dlls/d3d11/tests/d3d11.c @@ -886,6 +886,9 @@ static void test_device_interfaces(void) todo_wine ok(hr == E_NOINTERFACE, "Device should not implement ID3D10Device interface, hr %#x.\n", hr); if (SUCCEEDED(hr)) IUnknown_Release(iface); + hr = ID3D11Device_QueryInterface(device, &IID_ID3D11InfoQueue, (void **)&iface); + ok(hr == E_NOINTERFACE, "Found ID3D11InfoQueue interface in non-debug mode, hr %#x.\n", hr); + hr = ID3D11Device_QueryInterface(device, &IID_ID3D10Device1, (void **)&iface); todo_wine ok(hr == E_NOINTERFACE, "Device should not implement ID3D10Device1 interface, hr %#x.\n", hr); if (SUCCEEDED(hr)) IUnknown_Release(iface); @@ -893,6 +896,26 @@ static void test_device_interfaces(void) refcount = ID3D11Device_Release(device); ok(!refcount, "Device has %u references left.\n", refcount); } + + for (i = 0; i < sizeof(d3d11_feature_levels) / sizeof(*d3d11_feature_levels); ++i) + { + struct device_desc device_desc; + + device_desc.feature_level = &d3d11_feature_levels[i]; + device_desc.flags = D3D11_CREATE_DEVICE_DEBUG; + if (!(device = create_device(&device_desc))) + { + skip("Failed to create device for feature level %#x.\n", d3d11_feature_levels[i]); + continue; + } + + hr = ID3D11Device_QueryInterface(device, &IID_ID3D11InfoQueue, (void **)&iface); + todo_wine ok(hr == S_OK, "Device should implement ID3D11InfoQueue interface, hr %#x.\n", hr); + if (SUCCEEDED(hr)) IUnknown_Release(iface); + + refcount = ID3D11Device_Release(device); + ok(!refcount, "Device has %u references left.\n", refcount); + } } static void test_get_immediate_context(void)