[PATCH 1/4] shlwapi/tests: Add a simple QI test for file streams.
Nikolay Sivov
nsivov at codeweavers.com
Thu Aug 30 17:35:55 CDT 2018
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
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 300e9b9c00..f1854a283f 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);
--
2.18.0
More information about the wine-devel
mailing list