Rico Schüller : d3dx9/tests: Add ID3DXEffectCompiler test.

Alexandre Julliard julliard at winehq.org
Tue Mar 29 11:43:11 CDT 2011


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

Author: Rico Schüller <kgbricola at web.de>
Date:   Sun Mar 27 22:13:02 2011 +0200

d3dx9/tests: Add ID3DXEffectCompiler test.

---

 dlls/d3dx9_36/tests/effect.c |   55 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 55 insertions(+), 0 deletions(-)

diff --git a/dlls/d3dx9_36/tests/effect.c b/dlls/d3dx9_36/tests/effect.c
index 6f4b674..483efd4 100644
--- a/dlls/d3dx9_36/tests/effect.c
+++ b/dlls/d3dx9_36/tests/effect.c
@@ -117,6 +117,60 @@ static void test_create_effect_and_pool(IDirect3DDevice9 *device)
     ok(count == 0, "Release failed %u\n", count);
 }
 
+static void test_create_effect_compiler(void)
+{
+    HRESULT hr;
+    ID3DXEffectCompiler *compiler, *compiler2;
+    ID3DXBaseEffect *base;
+    IUnknown *unknown;
+    ULONG count;
+
+    hr = D3DXCreateEffectCompiler(NULL, 0, NULL, NULL, 0, &compiler, NULL);
+    ok(hr == D3DERR_INVALIDCALL, "Got result %x, expected %x (D3D_INVALIDCALL)\n", hr, D3DERR_INVALIDCALL);
+
+    hr = D3DXCreateEffectCompiler(NULL, 0, NULL, NULL, 0, NULL, NULL);
+    ok(hr == D3DERR_INVALIDCALL, "Got result %x, expected %x (D3D_INVALIDCALL)\n", hr, D3DERR_INVALIDCALL);
+
+    hr = D3DXCreateEffectCompiler(effect_desc, 0, NULL, NULL, 0, &compiler, NULL);
+    ok(hr == D3D_OK, "Got result %x, expected %x (D3D_OK)\n", hr, D3D_OK);
+
+    count = compiler->lpVtbl->Release(compiler);
+    ok(count == 0, "Release failed %u\n", count);
+
+    hr = D3DXCreateEffectCompiler(effect_desc, 0, NULL, NULL, 0, NULL, NULL);
+    ok(hr == D3DERR_INVALIDCALL, "Got result %x, expected %x (D3D_INVALIDCALL)\n", hr, D3DERR_INVALIDCALL);
+
+    hr = D3DXCreateEffectCompiler(NULL, sizeof(effect_desc), NULL, NULL, 0, &compiler, NULL);
+    ok(hr == D3DERR_INVALIDCALL, "Got result %x, expected %x (D3D_INVALIDCALL)\n", hr, D3DERR_INVALIDCALL);
+
+    hr = D3DXCreateEffectCompiler(NULL, sizeof(effect_desc), NULL, NULL, 0, NULL, NULL);
+    ok(hr == D3DERR_INVALIDCALL, "Got result %x, expected %x (D3D_INVALIDCALL)\n", hr, D3DERR_INVALIDCALL);
+
+    hr = D3DXCreateEffectCompiler(effect_desc, sizeof(effect_desc), NULL, NULL, 0, NULL, NULL);
+    ok(hr == D3DERR_INVALIDCALL, "Got result %x, expected %x (D3DERR_INVALIDCALL)\n", hr, D3DERR_INVALIDCALL);
+
+    hr = D3DXCreateEffectCompiler(effect_desc, sizeof(effect_desc), NULL, NULL, 0, &compiler, NULL);
+    ok(hr == D3D_OK, "Got result %x, expected %x (D3D_OK)\n", hr, D3D_OK);
+
+    hr = compiler->lpVtbl->QueryInterface(compiler, &IID_ID3DXBaseEffect, (void **)&base);
+    ok(hr == E_NOINTERFACE, "QueryInterface failed, got %x, expected %x (E_NOINTERFACE)\n", hr, E_NOINTERFACE);
+
+    hr = compiler->lpVtbl->QueryInterface(compiler, &IID_ID3DXEffectCompiler, (void **)&compiler2);
+    ok(hr == D3D_OK, "QueryInterface failed, got %x, expected %x (D3D_OK)\n", hr, D3D_OK);
+
+    hr = compiler->lpVtbl->QueryInterface(compiler, &IID_IUnknown, (void **)&unknown);
+    ok(hr == D3D_OK, "QueryInterface failed, got %x, expected %x (D3D_OK)\n", hr, D3D_OK);
+
+    count = unknown->lpVtbl->Release(unknown);
+    ok(count == 2, "Release failed, got %u, expected %u\n", count, 2);
+
+    count = compiler2->lpVtbl->Release(compiler2);
+    ok(count == 1, "Release failed, got %u, expected %u\n", count, 1);
+
+    count = compiler->lpVtbl->Release(compiler);
+    ok(count == 0, "Release failed %u\n", count);
+}
+
 START_TEST(effect)
 {
     HWND wnd;
@@ -150,6 +204,7 @@ START_TEST(effect)
     }
 
     test_create_effect_and_pool(device);
+    test_create_effect_compiler();
 
     count = IDirect3DDevice9_Release(device);
     ok(count == 0, "The device was not properly freed: refcount %u\n", count);




More information about the wine-cvs mailing list