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