From 62c43186fc445cc0c57d6e202a64eecfecf42847 Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Fri, 31 Aug 2018 01:35:55 +0300 Subject: [PATCH] shlwapi/tests: Add a simple QI test for file streams. Signed-off-by: Nikolay Sivov Signed-off-by: Alexandre Julliard --- 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 300e9b9c003..f1854a283fd 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);