From f2bcaf1af8c8dd6015183cb8edce94031cb72754 Mon Sep 17 00:00:00 2001 From: Vincent Povirk Date: Wed, 26 May 2010 12:10:53 -0500 Subject: [PATCH 1/2] ole32/tests: Add more IStream_Seek tests for hglobalstream. --- dlls/ole32/tests/hglobalstream.c | 47 +++++++++++++++++++++++++++++++++++++- 1 files changed, 46 insertions(+), 1 deletions(-) diff --git a/dlls/ole32/tests/hglobalstream.c b/dlls/ole32/tests/hglobalstream.c index 5632b24..6d2230d 100644 --- a/dlls/ole32/tests/hglobalstream.c +++ b/dlls/ole32/tests/hglobalstream.c @@ -151,7 +151,7 @@ static void test_streamonhglobal(IStream *pStream) ok(ull.u.LowPart == 0, "should have set LowPart to 0 instead of %d\n", ull.u.LowPart); ok(ull.u.HighPart == 0, "should have set HighPart to 0 instead of %d\n", ull.u.HighPart); - /* IStream_Seek -- invalid LowPart value (seek from current position) */ + /* IStream_Seek -- invalid LowPart value (seek before start of stream) */ ll.u.HighPart = 0; ll.u.LowPart = sizeof(data); hr = IStream_Seek(pStream, ll, STREAM_SEEK_SET, &ull); @@ -166,6 +166,51 @@ static void test_streamonhglobal(IStream *pStream) ok(ull.u.LowPart == sizeof(data), "LowPart set to %d\n", ull.u.LowPart); ok(ull.u.HighPart == 0, "should have set HighPart to 0 instead of %d\n", ull.u.HighPart); + /* IStream_Seek -- valid LowPart value (seek to start of stream) */ + ll.u.HighPart = 0; + ll.u.LowPart = sizeof(data); + hr = IStream_Seek(pStream, ll, STREAM_SEEK_SET, &ull); + ok_ole_success(hr, "IStream_Seek"); + + ull.u.HighPart = 0xCAFECAFE; + ull.u.LowPart = 0xCAFECAFE; + ll.u.HighPart = 0; + ll.u.LowPart = -sizeof(data); + hr = IStream_Seek(pStream, ll, STREAM_SEEK_CUR, &ull); + todo_wine ok_ole_success(hr, "IStream_Seek"); + todo_wine ok(ull.u.LowPart == 0, "LowPart set to %d\n", ull.u.LowPart); + ok(ull.u.HighPart == 0, "should have set HighPart to 0 instead of %d\n", ull.u.HighPart); + + /* IStream_Seek -- invalid LowPart value (seek to start of stream-1) */ + ll.u.HighPart = 0; + ll.u.LowPart = sizeof(data); + hr = IStream_Seek(pStream, ll, STREAM_SEEK_SET, &ull); + ok_ole_success(hr, "IStream_Seek"); + + ull.u.HighPart = 0xCAFECAFE; + ull.u.LowPart = 0xCAFECAFE; + ll.u.HighPart = 0; + ll.u.LowPart = -sizeof(data)-1; + hr = IStream_Seek(pStream, ll, STREAM_SEEK_CUR, &ull); + ok(hr == STG_E_SEEKERROR, "IStream_Seek should have returned STG_E_SEEKERROR instead of 0x%08x\n", hr); + ok(ull.u.LowPart == sizeof(data), "LowPart set to %d\n", ull.u.LowPart); + ok(ull.u.HighPart == 0, "should have set HighPart to 0 instead of %d\n", ull.u.HighPart); + + /* IStream_Seek -- valid LowPart value (seek forward to 0x80000000) */ + ll.u.HighPart = 0; + ll.u.LowPart = sizeof(data); + hr = IStream_Seek(pStream, ll, STREAM_SEEK_SET, &ull); + ok_ole_success(hr, "IStream_Seek"); + + ull.u.HighPart = 0xCAFECAFE; + ull.u.LowPart = 0xCAFECAFE; + ll.u.HighPart = 0; + ll.u.LowPart = 0x80000000 - sizeof(data); + hr = IStream_Seek(pStream, ll, STREAM_SEEK_CUR, &ull); + ok_ole_success(hr, "IStream_Seek"); + ok(ull.u.LowPart == 0x80000000, "LowPart set to %d\n", ull.u.LowPart); + ok(ull.u.HighPart == 0, "should have set HighPart to 0 instead of %d\n", ull.u.HighPart); + /* IStream_Seek -- invalid LowPart value (seek to beginning) */ ll.u.HighPart = 0; ll.u.LowPart = sizeof(data); -- 1.6.3.3