Vincent Povirk : ole32/tests: Add more IStream_Seek tests for hglobalstream .

Alexandre Julliard julliard at winehq.org
Thu May 27 10:46:40 CDT 2010


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

Author: Vincent Povirk <vincent at codeweavers.com>
Date:   Wed May 26 12:10:53 2010 -0500

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);




More information about the wine-cvs mailing list