d3d8: Add tests for deleting invalid shader handles.

Rico Schüller kgbricola at web.de
Tue Jun 16 02:38:25 CDT 2009


---
 dlls/d3d8/tests/device.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/dlls/d3d8/tests/device.c b/dlls/d3d8/tests/device.c
index 0cd741d..f039a1b 100644
--- a/dlls/d3d8/tests/device.c
+++ b/dlls/d3d8/tests/device.c
@@ -1061,6 +1061,12 @@ static void test_shader(void)
         ok(hTempHandle == hPixelShader, "Pixel Shader %d is set, expected shader %d\n", hTempHandle, hPixelShader);
         hr = IDirect3DDevice8_DeletePixelShader(pDevice, hPixelShader);
         ok(hr == D3D_OK, "IDirect3DDevice8_DeletePixelShader returned %#08x\n", hr);
+
+        /* Check for double delete. */
+        hr = IDirect3DDevice8_DeletePixelShader(pDevice, hPixelShader2);
+        ok(hr == D3D_OK, "IDirect3DDevice8_DeletePixelShader returned %#08x\n", hr);
+        hr = IDirect3DDevice8_DeletePixelShader(pDevice, hPixelShader);
+        ok(hr == D3D_OK, "IDirect3DDevice8_DeletePixelShader returned %#08x\n", hr);
     }
     else
     {
@@ -1083,6 +1089,12 @@ static void test_shader(void)
     hr = IDirect3DDevice8_DeleteVertexShader(pDevice, hVertexShader);
     ok(hr == D3D_OK, "IDirect3DDevice8_DeleteVertexShader returned %#08x\n", hr);
 
+    /* Check for double delete. */
+    hr = IDirect3DDevice8_DeleteVertexShader(pDevice, hVertexShader2);
+    ok(hr == D3DERR_INVALIDCALL, "IDirect3DDevice8_DeleteVertexShader returned %#08x\n", hr);
+    hr = IDirect3DDevice8_DeleteVertexShader(pDevice, hVertexShader);
+    ok(hr == D3DERR_INVALIDCALL, "IDirect3DDevice8_DeleteVertexShader returned %#08x\n", hr);
+
 cleanup:
     if(pD3d) IDirect3D8_Release(pD3d);
     if(pDevice) IDirect3D8_Release(pDevice);
-- 
1.6.0.6



--------------000700040007090209080308--



More information about the wine-patches mailing list