Henri Verbeet : dxgi/tests: Cleanup test_output().

Alexandre Julliard julliard at winehq.org
Mon Feb 10 13:06:56 CST 2014


Module: wine
Branch: master
Commit: 19f204437529d42f579581d427655655369c46f3
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=19f204437529d42f579581d427655655369c46f3

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Mon Feb 10 10:37:53 2014 +0100

dxgi/tests: Cleanup test_output().

In particular, actually test the return codes for most calls.

---

 dlls/dxgi/tests/device.c |   54 +++++++++++++++++++++++++---------------------
 1 file changed, 30 insertions(+), 24 deletions(-)

diff --git a/dlls/dxgi/tests/device.c b/dlls/dxgi/tests/device.c
index b8e7b33..ba1a29f 100644
--- a/dlls/dxgi/tests/device.c
+++ b/dlls/dxgi/tests/device.c
@@ -255,44 +255,47 @@ static void test_output(IDXGIDevice *device)
     hr = IDXGIAdapter_EnumOutputs(adapter, 0, &output);
     if (hr == DXGI_ERROR_NOT_FOUND)
     {
-        skip("Adapter has not outputs, skipping output tests.\n");
+        skip("Adapter doesn't have any outputs, skipping tests.\n");
         IDXGIAdapter_Release(adapter);
         return;
     }
-
     ok(SUCCEEDED(hr), "EnumOutputs failed, hr %#x.\n", hr);
 
-    IDXGIOutput_GetDisplayModeList(output, DXGI_FORMAT_R8G8B8A8_UNORM, 0, NULL, NULL);
-    ok(SUCCEEDED(hr), "Failed to list modes, hr %#x.\n", hr);
+    hr = IDXGIOutput_GetDisplayModeList(output, DXGI_FORMAT_R8G8B8A8_UNORM, 0, NULL, NULL);
+    todo_wine ok(hr == DXGI_ERROR_INVALID_CALL, "Got unexpected hr %#x.\n", hr);
 
-    IDXGIOutput_GetDisplayModeList(output, DXGI_FORMAT_R8G8B8A8_UNORM, 0, &mode_count, NULL);
+    hr = IDXGIOutput_GetDisplayModeList(output, DXGI_FORMAT_R8G8B8A8_UNORM, 0, &mode_count, NULL);
     ok(SUCCEEDED(hr), "Failed to list modes, hr %#x.\n", hr);
     mode_count_comp = mode_count;
 
-    IDXGIOutput_GetDisplayModeList(output, 0, 0, &mode_count, NULL);
+    hr = IDXGIOutput_GetDisplayModeList(output, 0, 0, &mode_count, NULL);
     ok(SUCCEEDED(hr), "Failed to list modes, hr %#x.\n", hr);
-    ok(!mode_count, "Expected 0 got %d\n", mode_count);
+    ok(!mode_count, "Got unexpected mode_count %u.\n", mode_count);
 
-    IDXGIOutput_GetDisplayModeList(output, DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_ENUM_MODES_SCALING, &mode_count, NULL);
+    hr = IDXGIOutput_GetDisplayModeList(output, DXGI_FORMAT_R8G8B8A8_UNORM,
+            DXGI_ENUM_MODES_SCALING, &mode_count, NULL);
     ok(SUCCEEDED(hr), "Failed to list modes, hr %#x.\n", hr);
-    ok(mode_count >= mode_count_comp, "Flag implies trying to enumerate more modes\n");
+    ok(mode_count >= mode_count_comp, "Got unexpected mode_count %u, expected >= %u.\n", mode_count, mode_count_comp);
     mode_count_comp = mode_count;
 
-    modes = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(DXGI_MODE_DESC) * mode_count+10);
+    modes = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*modes) * (mode_count + 10));
 
-    IDXGIOutput_GetDisplayModeList(output, DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_ENUM_MODES_SCALING, NULL, modes);
-    ok(SUCCEEDED(hr), "Failed to list modes, hr %#x.\n", hr);
-    ok(!modes[0].Height, "No output was expected\n");
+    hr = IDXGIOutput_GetDisplayModeList(output, DXGI_FORMAT_R8G8B8A8_UNORM,
+            DXGI_ENUM_MODES_SCALING, NULL, modes);
+    todo_wine ok(hr == DXGI_ERROR_INVALID_CALL, "Got unexpected hr %#x.\n", hr);
+    ok(!modes[0].Height, "No output was expected.\n");
 
     mode_count = 0;
-    IDXGIOutput_GetDisplayModeList(output, DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_ENUM_MODES_SCALING, &mode_count, modes);
-    ok(SUCCEEDED(hr), "Failed to list modes, hr %#x.\n", hr);
-    ok(!modes[0].Height, "No output was expected\n");
+    hr = IDXGIOutput_GetDisplayModeList(output, DXGI_FORMAT_R8G8B8A8_UNORM,
+            DXGI_ENUM_MODES_SCALING, &mode_count, modes);
+    todo_wine ok(hr == DXGI_ERROR_MORE_DATA, "Got unexpected hr %#x.\n", hr);
+    ok(!modes[0].Height, "No output was expected.\n");
 
     mode_count = mode_count_comp;
-    IDXGIOutput_GetDisplayModeList(output, DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_ENUM_MODES_SCALING, &mode_count, modes);
+    hr = IDXGIOutput_GetDisplayModeList(output, DXGI_FORMAT_R8G8B8A8_UNORM,
+            DXGI_ENUM_MODES_SCALING, &mode_count, modes);
     ok(SUCCEEDED(hr), "Failed to list modes, hr %#x.\n", hr);
-    ok(mode_count == mode_count_comp, "Expected %d, got %d\n", mode_count_comp, mode_count);
+    ok(mode_count == mode_count_comp, "Got unexpected mode_count %u, expected %u.\n", mode_count, mode_count_comp);
 
     for (i = 0; i < mode_count; i++)
     {
@@ -300,20 +303,23 @@ static void test_output(IDXGIDevice *device)
     }
 
     mode_count += 5;
-    IDXGIOutput_GetDisplayModeList(output, DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_ENUM_MODES_SCALING, &mode_count, modes);
+    hr = IDXGIOutput_GetDisplayModeList(output, DXGI_FORMAT_R8G8B8A8_UNORM,
+            DXGI_ENUM_MODES_SCALING, &mode_count, modes);
     ok(SUCCEEDED(hr), "Failed to list modes, hr %#x.\n", hr);
-    ok(mode_count == mode_count_comp, "Expected %d, got %d\n", mode_count_comp, mode_count);
+    ok(mode_count == mode_count_comp, "Got unexpected mode_count %u, expected %u.\n", mode_count, mode_count_comp);
 
     if (mode_count_comp)
     {
         mode_count = mode_count_comp - 1;
-        IDXGIOutput_GetDisplayModeList(output, DXGI_FORMAT_R8G8B8A8_UNORM, DXGI_ENUM_MODES_SCALING, &mode_count, modes);
-        ok(SUCCEEDED(hr), "Failed to list modes, hr %#x.\n", hr);
-        ok(mode_count == mode_count_comp -1, "Expected %d, got %d\n", mode_count_comp, mode_count);
+        hr = IDXGIOutput_GetDisplayModeList(output, DXGI_FORMAT_R8G8B8A8_UNORM,
+                DXGI_ENUM_MODES_SCALING, &mode_count, modes);
+        todo_wine ok(hr == DXGI_ERROR_MORE_DATA, "Got unexpected hr %#x.\n", hr);
+        ok(mode_count == mode_count_comp - 1, "Got unexpected mode_count %u, expected %u.\n",
+                mode_count, mode_count_comp - 1);
     }
     else
     {
-        skip("Not enough modes for test, skipping\n");
+        skip("Not enough modes for test, skipping.\n");
     }
 
     HeapFree(GetProcessHeap(), 0, modes);




More information about the wine-cvs mailing list