Stefan Dösinger : d3d9: Fix test failures on Windows 7 .
Alexandre Julliard
julliard at winehq.org
Tue Mar 16 11:49:21 CDT 2010
Module: wine
Branch: master
Commit: eb355ece4aeb6a1e6fb348c3662378ab76809667
URL: http://source.winehq.org/git/wine.git/?a=commit;h=eb355ece4aeb6a1e6fb348c3662378ab76809667
Author: Stefan Dösinger <stefan at codeweavers.com>
Date: Sun Mar 14 12:59:29 2010 +0100
d3d9: Fix test failures on Windows 7.
---
dlls/d3d9/tests/buffer.c | 14 +++++++++-----
1 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/dlls/d3d9/tests/buffer.c b/dlls/d3d9/tests/buffer.c
index 1347121..57a6495 100644
--- a/dlls/d3d9/tests/buffer.c
+++ b/dlls/d3d9/tests/buffer.c
@@ -78,7 +78,7 @@ static void lock_flag_test(IDirect3DDevice9 *device)
{
DWORD flags;
const char *debug_string;
- HRESULT result;
+ HRESULT win7_result;
}
test_data[] =
{
@@ -87,9 +87,9 @@ static void lock_flag_test(IDirect3DDevice9 *device)
{D3DLOCK_NOOVERWRITE, "D3DLOCK_NOOVERWRITE", D3D_OK },
{D3DLOCK_NOOVERWRITE | D3DLOCK_DISCARD, "D3DLOCK_NOOVERWRITE | D3DLOCK_DISCARD", D3D_OK },
{D3DLOCK_NOOVERWRITE | D3DLOCK_READONLY, "D3DLOCK_NOOVERWRITE | D3DLOCK_READONLY", D3D_OK },
- {D3DLOCK_READONLY | D3DLOCK_DISCARD, "D3DLOCK_READONLY | D3DLOCK_DISCARD", D3D_OK },
+ {D3DLOCK_READONLY | D3DLOCK_DISCARD, "D3DLOCK_READONLY | D3DLOCK_DISCARD", D3DERR_INVALIDCALL },
/* Completely bogous flags aren't an error */
- {0xdeadbeef, "0xdeadbeef", D3D_OK },
+ {0xdeadbeef, "0xdeadbeef", D3DERR_INVALIDCALL },
};
hr = IDirect3DDevice9_CreateVertexBuffer(device, 1024, D3DUSAGE_DYNAMIC, 0, D3DPOOL_DEFAULT, &buffer, NULL);
@@ -98,8 +98,12 @@ static void lock_flag_test(IDirect3DDevice9 *device)
for(i = 0; i < (sizeof(test_data) / sizeof(*test_data)); i++)
{
hr = IDirect3DVertexBuffer9_Lock(buffer, 0, 0, &data, test_data[i].flags);
- ok(hr == test_data[i].result, "Lock flags %s returned 0x%08x, expected 0x%08x\n",
- test_data[i].debug_string, hr, test_data[i].result);
+ /* Windows XP always returns D3D_OK even with flags that don't make sense. Windows 7 returns
+ * an error. At least one game(Shaiya) depends on the Windows XP result, so mark the Windows 7
+ * behavior as broken()
+ */
+ ok(hr == D3D_OK || broken(hr == test_data[i].win7_result), "Lock flags %s returned 0x%08x, expected D3D_OK\n",
+ test_data[i].debug_string, hr);
if(SUCCEEDED(hr))
{
More information about the wine-cvs
mailing list