Nikolay Sivov : shlwapi/tests: Add a simple QI test for file streams.

Alexandre Julliard julliard at winehq.org
Fri Aug 31 14:26:33 CDT 2018


Module: wine
Branch: master
Commit: 62c43186fc445cc0c57d6e202a64eecfecf42847
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=62c43186fc445cc0c57d6e202a64eecfecf42847

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Fri Aug 31 01:35:55 2018 +0300

shlwapi/tests: Add a simple QI test for file streams.

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/shlwapi/tests/istream.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/dlls/shlwapi/tests/istream.c b/dlls/shlwapi/tests/istream.c
index 300e9b9..f1854a2 100644
--- a/dlls/shlwapi/tests/istream.c
+++ b/dlls/shlwapi/tests/istream.c
@@ -247,6 +247,27 @@ static void test_stream_read_write(IStream *stream, DWORD mode)
         ok(buf[0] == 0x5e && buf[1] == 0xa7, "expected 5ea7, got %02x%02x\n", buf[0], buf[1]);
 }
 
+static void test_stream_qi(IStream *stream)
+{
+    IUnknown *unk;
+    HRESULT hr;
+
+    hr = IStream_QueryInterface(stream, &IID_IStream, (void **)&unk);
+    ok(SUCCEEDED(hr), "Failed to get IStream interface, hr %#x.\n", hr);
+    IUnknown_Release(unk);
+
+    unk = NULL;
+    hr = IStream_QueryInterface(stream, &IID_ISequentialStream, (void **)&unk);
+todo_wine
+    ok(SUCCEEDED(hr) || broken(hr == E_NOINTERFACE) /* XP */, "Failed to get ISequentialStream interface, hr %#x.\n", hr);
+    if (unk)
+        IUnknown_Release(unk);
+
+    hr = IStream_QueryInterface(stream, &IID_IUnknown, (void **)&unk);
+    ok(SUCCEEDED(hr), "Failed to get IUnknown interface, hr %#x.\n", hr);
+    IUnknown_Release(unk);
+}
+
 static void test_SHCreateStreamOnFileA(DWORD mode, DWORD stgm)
 {
     IStream * stream;
@@ -310,6 +331,7 @@ if (0) /* This test crashes on WinXP SP2 */
     ok(stream != NULL, "SHCreateStreamOnFileA: expected a valid IStream object, got NULL\n");
 
     if (stream) {
+        test_stream_qi(stream);
         test_IStream_invalid_operations(stream, mode);
 
         refcount = IStream_Release(stream);
@@ -422,6 +444,7 @@ static void test_SHCreateStreamOnFileW(DWORD mode, DWORD stgm)
     ok(stream != NULL, "SHCreateStreamOnFileW: expected a valid IStream object, got NULL\n");
 
     if (stream) {
+        test_stream_qi(stream);
         test_IStream_invalid_operations(stream, mode);
 
         refcount = IStream_Release(stream);
@@ -551,6 +574,7 @@ static void test_SHCreateStreamOnFileEx(DWORD mode, DWORD stgm)
     ok(stream != NULL, "SHCreateStreamOnFileEx: expected a valid IStream object, got NULL\n");
 
     if (stream) {
+        test_stream_qi(stream);
         test_IStream_invalid_operations(stream, mode);
 
         refcount = IStream_Release(stream);




More information about the wine-cvs mailing list