Alexander Dorofeyev : ddraw/tests: Add test for branch instruction with non-zero offset.

Alexandre Julliard julliard at winehq.org
Tue Feb 19 08:05:13 CST 2008


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

Author: Alexander Dorofeyev <alexd4 at inbox.lv>
Date:   Sun Feb 17 17:36:39 2008 -0800

ddraw/tests: Add test for branch instruction with non-zero offset.

---

 dlls/ddraw/tests/d3d.c |   32 +++++++++++++++++++++++++++++++-
 1 files changed, 31 insertions(+), 1 deletions(-)

diff --git a/dlls/ddraw/tests/d3d.c b/dlls/ddraw/tests/d3d.c
index fb9e51e..9dac748 100644
--- a/dlls/ddraw/tests/d3d.c
+++ b/dlls/ddraw/tests/d3d.c
@@ -979,6 +979,8 @@ static void Direct3D1Test(void)
 
     hr = IDirect3DExecuteBuffer_Lock(exebuf, &desc);
     ok(hr == D3D_OK, "IDirect3DExecuteBuffer_Lock failed: %08x\n", hr);
+
+    memset(desc.lpData, 0, 128);
     instr = desc.lpData;
     instr[idx].bOpcode = D3DOP_BRANCHFORWARD;
     instr[idx].bSize = sizeof(*branch);
@@ -992,7 +994,7 @@ static void Direct3D1Test(void)
     idx += (sizeof(*branch) / sizeof(*instr));
     instr[idx].bOpcode = D3DOP_EXIT;
     instr[idx].bSize = 0;
-    instr[idx].bSize = 0;
+    instr[idx].wCount = 0;
     hr = IDirect3DExecuteBuffer_Unlock(exebuf);
     ok(hr == D3D_OK, "IDirect3DExecuteBuffer_Unlock failed: %08x\n", hr);
 
@@ -1020,6 +1022,34 @@ static void Direct3D1Test(void)
     hr = IDirect3DDevice_Execute(dev1, exebuf, vp, D3DEXECUTE_CLIPPED);
     ok(hr == D3D_OK, "IDirect3DDevice_Execute returned %08x\n", hr);
 
+    memset(&desc, 0, sizeof(desc));
+    desc.dwSize = sizeof(desc);
+
+    hr = IDirect3DExecuteBuffer_Lock(exebuf, &desc);
+    ok(hr == D3D_OK, "IDirect3DExecuteBuffer_Lock failed: %08x\n", hr);
+
+    memset(desc.lpData, 0, 128);
+    instr = desc.lpData;
+    idx = 0;
+    instr[idx].bOpcode = D3DOP_BRANCHFORWARD;
+    instr[idx].bSize = sizeof(*branch);
+    instr[idx].wCount = 1;
+    idx++;
+    branch = (D3DBRANCH *) &instr[idx];
+    branch->dwMask = 0x0;
+    branch->dwValue = 1;
+    branch->bNegate = TRUE;
+    branch->dwOffset = 64;
+    instr = (D3DINSTRUCTION*)((char*)desc.lpData + 64);
+    instr[0].bOpcode = D3DOP_EXIT;
+    instr[0].bSize = 0;
+    instr[0].wCount = 0;
+    hr = IDirect3DExecuteBuffer_Unlock(exebuf);
+    ok(hr == D3D_OK, "IDirect3DExecuteBuffer_Unlock failed: %08x\n", hr);
+
+    hr = IDirect3DDevice_Execute(dev1, exebuf, vp, D3DEXECUTE_CLIPPED);
+    ok(hr == D3D_OK, "IDirect3DDevice_Execute returned %08x\n", hr);
+
     memset(&transformdata, 0, sizeof(transformdata));
     transformdata.dwSize = sizeof(transformdata);
     transformdata.lpIn = (void *) testverts;




More information about the wine-cvs mailing list