[PATCH] dxgi/tests: Test IDXGISwapchain::GetFullscreenState after window is destroyed

Andrew Eikum aeikum at codeweavers.com
Tue Jan 21 13:02:37 CST 2020


Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
---
 dlls/dxgi/tests/dxgi.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/dlls/dxgi/tests/dxgi.c b/dlls/dxgi/tests/dxgi.c
index b2b53f7a4ca..3fbb50ca3f9 100644
--- a/dlls/dxgi/tests/dxgi.c
+++ b/dlls/dxgi/tests/dxgi.c
@@ -2365,6 +2365,7 @@ static void test_set_fullscreen(IUnknown *device, BOOL is_d3d12)
     IDXGIOutput *output;
     ULONG refcount;
     HRESULT hr;
+    BOOL fs_state;
 
     get_factory(device, is_d3d12, &factory);
 
@@ -2432,11 +2433,20 @@ static void test_set_fullscreen(IUnknown *device, BOOL is_d3d12)
     ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
     hr = IDXGISwapChain_SetFullscreenState(swapchain, FALSE, NULL);
     ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
+    hr = IDXGISwapChain_GetFullscreenState(swapchain, &fs_state, NULL);
+    ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
+    ok(fs_state == FALSE, "Got wrong fullscreen state %u\n", fs_state);
     DestroyWindow(swapchain_desc.OutputWindow);
     hr = IDXGISwapChain_SetFullscreenState(swapchain, FALSE, NULL);
     ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
+    hr = IDXGISwapChain_GetFullscreenState(swapchain, &fs_state, NULL);
+    ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
+    ok(fs_state == FALSE, "Got wrong fullscreen state %u\n", fs_state);
     hr = IDXGISwapChain_SetFullscreenState(swapchain, TRUE, NULL);
     ok(hr == DXGI_ERROR_NOT_CURRENTLY_AVAILABLE, "Got unexpected hr %#x.\n", hr);
+    hr = IDXGISwapChain_GetFullscreenState(swapchain, &fs_state, NULL);
+    ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
+    ok(fs_state == FALSE, "Got wrong fullscreen state %u\n", fs_state);
     hr = IDXGISwapChain_SetFullscreenState(swapchain, FALSE, NULL);
     ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
     refcount = IDXGISwapChain_Release(swapchain);
@@ -2448,13 +2458,25 @@ static void test_set_fullscreen(IUnknown *device, BOOL is_d3d12)
     ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
     hr = IDXGISwapChain_SetFullscreenState(swapchain, TRUE, NULL);
     ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
+    hr = IDXGISwapChain_GetFullscreenState(swapchain, &fs_state, NULL);
+    ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
+    ok(fs_state == TRUE, "Got wrong fullscreen state %u\n", fs_state);
     DestroyWindow(swapchain_desc.OutputWindow);
     hr = IDXGISwapChain_SetFullscreenState(swapchain, TRUE, NULL);
     ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
+    hr = IDXGISwapChain_GetFullscreenState(swapchain, &fs_state, NULL);
+    ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
+    ok(fs_state == TRUE, "Got wrong fullscreen state %u\n", fs_state);
     hr = IDXGISwapChain_SetFullscreenState(swapchain, FALSE, NULL);
     ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
+    hr = IDXGISwapChain_GetFullscreenState(swapchain, &fs_state, NULL);
+    ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
+    ok(fs_state == FALSE, "Got wrong fullscreen state %u\n", fs_state);
     hr = IDXGISwapChain_SetFullscreenState(swapchain, TRUE, NULL);
     ok(hr == DXGI_ERROR_NOT_CURRENTLY_AVAILABLE, "Got unexpected hr %#x.\n", hr);
+    hr = IDXGISwapChain_GetFullscreenState(swapchain, &fs_state, NULL);
+    ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
+    ok(fs_state == FALSE, "Got wrong fullscreen state %u\n", fs_state);
     hr = IDXGISwapChain_SetFullscreenState(swapchain, FALSE, NULL);
     ok(hr == S_OK, "Got unexpected hr %#x.\n", hr);
     refcount = IDXGISwapChain_Release(swapchain);
-- 
2.25.0




More information about the wine-devel mailing list