From: Andrew Eikum Subject: [PATCH] dxgi/tests: Test IDXGISwapchain::GetFullscreenState after window is destroyed Message-Id: <20200121190236.etty6meecodrdxh5@foghorn.codeweavers.com> Date: Tue, 21 Jan 2020 13:02:37 -0600 Signed-off-by: Andrew Eikum --- 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