[PATCH 07/12] windowscodecs: Add tests for IWICStream_InitializeFromMemory

Tony Wasserka tony.wasserka at freenet.de
Tue Aug 18 10:50:39 CDT 2009


---
 dlls/windowscodecs/tests/Makefile.in |    3 +-
 dlls/windowscodecs/tests/stream.c    |   81 ++++++++++++++++++++++++++++++++++
 2 files changed, 83 insertions(+), 1 deletions(-)
 create mode 100644 dlls/windowscodecs/tests/stream.c

diff --git a/dlls/windowscodecs/tests/Makefile.in b/dlls/windowscodecs/tests/Makefile.in
index acde1d8..707d23f 100644
--- a/dlls/windowscodecs/tests/Makefile.in
+++ b/dlls/windowscodecs/tests/Makefile.in
@@ -8,7 +8,8 @@ IMPORTS   = kernel32 ole32 windowscodecs
 CTESTS = \
        bmpformat.c \
        converter.c \
-       palette.c
+       palette.c \
+       stream.c
 
 @MAKE_TEST_RULES@
 
diff --git a/dlls/windowscodecs/tests/stream.c b/dlls/windowscodecs/tests/stream.c
new file mode 100644
index 0000000..efb9b15
--- /dev/null
+++ b/dlls/windowscodecs/tests/stream.c
@@ -0,0 +1,81 @@
+/*
+ * Copyright 2009 Tony Wasserka
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "wine/test.h"
+
+#define COBJMACROS
+#include "wincodec.h"
+
+static void test_StreamOnMemory()
+{
+    IWICImagingFactory *pFactory;
+    IWICStream *pStream;
+    const BYTE CmpMem[] = {
+        0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
+        0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f,
+        0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f,
+        0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f,
+    };
+    BYTE Memory[64];
+    HRESULT hr;
+
+    memcpy(Memory, CmpMem, sizeof(CmpMem));
+
+    CoInitialize(NULL);
+
+    hr = CoCreateInstance(&CLSID_WICImagingFactory, NULL, CLSCTX_INPROC_SERVER, &IID_IWICImagingFactory, (void**)&pFactory);
+    if(FAILED(hr)) {
+        skip("CoCreateInstance returned with %#x, expected %#x\n", hr, S_OK);
+        return;
+    }
+
+    hr = IWICImagingFactory_CreateStream(pFactory, &pStream);
+    ok(hr == S_OK, "CreateStream returned with %#x, expected %#x\n", hr, S_OK);
+    if(FAILED(hr)) {
+        skip("Failed to create stream\n");
+        return;
+    }
+
+    /* InitializeFromMemory */
+    hr = IWICStream_InitializeFromMemory(pStream, NULL, sizeof(Memory));   /* memory = NULL */
+    ok(hr == E_INVALIDARG, "InitializeFromMemory returned with %#x, expected %#x\n", hr, E_INVALIDARG);
+
+    hr = IWICStream_InitializeFromMemory(pStream, Memory, 0);   /* size = 0 */
+    ok(hr == S_OK, "InitializeFromMemory returned with %#x, expected %#x\n", hr, S_OK);
+
+    hr = IWICStream_InitializeFromMemory(pStream, Memory, sizeof(Memory));   /* stream already initialized */
+    ok(hr == WINCODEC_ERR_WRONGSTATE, "InitializeFromMemory returned with %#x, expected %#x\n", hr, WINCODEC_ERR_WRONGSTATE);
+
+    /* recreate stream */
+    IWICStream_Release(pStream);
+    hr = IWICImagingFactory_CreateStream(pFactory, &pStream);
+    ok(hr == S_OK, "CreateStream failed with %#x\n", hr);
+
+    hr = IWICStream_InitializeFromMemory(pStream, Memory, sizeof(Memory));
+    ok(hr == S_OK, "InitializeFromMemory returned with %#x, expected %#x\n", hr, S_OK);
+
+
+    IWICStream_Release(pStream);
+    IWICStream_Release(pFactory);
+    CoUninitialize();
+}
+
+START_TEST(stream)
+{
+    test_StreamOnMemory();
+}
-- 
1.6.3.3


--------------020609080200020006060809--



More information about the wine-patches mailing list