Module: wine Branch: refs/heads/master Commit: a15ef7b18aef382c5f12bf26df277bc42d54472b URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=a15ef7b18aef382c5f12bf26...
Author: Robert Reif reif@earthlink.net Date: Sat Apr 29 10:14:40 2006 -0400
dsound: Add DirectSoundBuffer_Lock tests.
---
dlls/dsound/tests/ds3d.c | 16 ++++++++++++++++ dlls/dsound/tests/ds3d8.c | 16 ++++++++++++++++ 2 files changed, 32 insertions(+), 0 deletions(-)
diff --git a/dlls/dsound/tests/ds3d.c b/dlls/dsound/tests/ds3d.c index 0825d68..988e703 100644 --- a/dlls/dsound/tests/ds3d.c +++ b/dlls/dsound/tests/ds3d.c @@ -436,6 +436,8 @@ void test_buffer(LPDIRECTSOUND dso, LPDI LPDIRECTSOUND3DBUFFER buffer=NULL; DS3DBUFFER buffer_param; DWORD start_time,now; + LPVOID buffer1; + DWORD length1;
if (winetest_interactive) { if (set_frequency) @@ -559,6 +561,20 @@ void test_buffer(LPDIRECTSOUND dso, LPDI } }
+ /* try an offset past the end of the buffer */ + rc = IDirectSoundBuffer_Lock(*dsbo, state.buffer_size, 0, &buffer1, + &length1, NULL, NULL, + DSBLOCK_ENTIREBUFFER); + ok(rc==DSERR_INVALIDPARAM, "IDirectSoundBuffer_Lock() should have " + "returned DSERR_INVALIDPARAM, returned %s\n", DXGetErrorString8(rc)); + + /* try a size larger than the buffer */ + rc = IDirectSoundBuffer_Lock(*dsbo, 0, state.buffer_size + 1, + &buffer1, &length1, NULL, NULL, + DSBLOCK_FROMWRITECURSOR); + ok(rc==DSERR_INVALIDPARAM, "IDirectSoundBuffer_Lock() should have " + "returned DSERR_INVALIDPARAM, returned %s\n", DXGetErrorString8(rc)); + if (set_frequency) state.wave=wave_generate_la(&wfx,(duration*frequency)/wfx.nSamplesPerSec,&state.wave_len); else diff --git a/dlls/dsound/tests/ds3d8.c b/dlls/dsound/tests/ds3d8.c index c0c5d51..1db0ad7 100644 --- a/dlls/dsound/tests/ds3d8.c +++ b/dlls/dsound/tests/ds3d8.c @@ -328,6 +328,8 @@ void test_buffer8(LPDIRECTSOUND8 dso, LP LPDIRECTSOUND3DBUFFER buffer=NULL; DS3DBUFFER buffer_param; DWORD start_time,now; + LPVOID buffer1; + DWORD length1;
if (winetest_interactive) { trace(" Playing %g second 440Hz tone at %ldx%dx%d\n", duration, @@ -445,6 +447,20 @@ void test_buffer8(LPDIRECTSOUND8 dso, LP } }
+ /* try an offset past the end of the buffer */ + rc = IDirectSoundBuffer_Lock(*dsbo, state.buffer_size, 0, &buffer1, + &length1, NULL, NULL, + DSBLOCK_ENTIREBUFFER); + ok(rc==DSERR_INVALIDPARAM, "IDirectSoundBuffer_Lock() should have " + "returned DSERR_INVALIDPARAM, returned %s\n", DXGetErrorString8(rc)); + + /* try a size larger than the buffer */ + rc = IDirectSoundBuffer_Lock(*dsbo, 0, state.buffer_size + 1, + &buffer1, &length1, NULL, NULL, + DSBLOCK_FROMWRITECURSOR); + ok(rc==DSERR_INVALIDPARAM, "IDirectSoundBuffer_Lock() should have " + "returned DSERR_INVALIDPARAM, returned %s\n", DXGetErrorString8(rc)); + state.wave=wave_generate_la(&wfx,duration,&state.wave_len);
state.dsbo=*dsbo;