[2/3] windowscodecs: Test for png codec seeking too far
Viktor Semykin
thesame.ml at gmail.com
Thu Mar 30 11:55:14 CDT 2017
Okay, I split the patch and put it in the tail of the series. It's up to
you to accept it or not.
On 30/03/17 03:57, Vincent Povirk wrote:
> I think you should either split the patch, or leave it using HGLOBAL.
>
> On Wed, Mar 29, 2017 at 11:12 PM, Viktor Semykin <thesame.ml at gmail.com> wrote:
>> No, there's no such a reason. This test would pass with HGLOBAL as well.
>> What should I do in this situation? Would it better to leave it as it used
>> to be?
>>
>>
>>
>> On 29/03/17 20:54, Vincent Povirk wrote:
>>> Is there a reason to switch to SHCreateMemStream to do this test in
>>> particular? If not, it would probably make more sense as a separate
>>> cleanup project.
>>>
>>> On Mon, Mar 27, 2017 at 3:09 PM, Viktor Semykin <thesame.ml at gmail.com>
>>> wrote:
>>>> Signed-off-by: Viktor Semykin <thesame.ml at gmail.com>
>>>> ---
>>>> dlls/windowscodecs/tests/Makefile.in | 2 +-
>>>> dlls/windowscodecs/tests/pngformat.c | 19 ++++++++++---------
>>>> 2 files changed, 11 insertions(+), 10 deletions(-)
>>>>
>>>> diff --git a/dlls/windowscodecs/tests/Makefile.in
>>>> b/dlls/windowscodecs/tests/Makefile.in
>>>> index e11d184..e006e3d 100644
>>>> --- a/dlls/windowscodecs/tests/Makefile.in
>>>> +++ b/dlls/windowscodecs/tests/Makefile.in
>>>> @@ -1,5 +1,5 @@
>>>> TESTDLL = windowscodecs.dll
>>>> -IMPORTS = windowscodecs oleaut32 ole32 user32 gdi32
>>>> +IMPORTS = windowscodecs oleaut32 ole32 user32 gdi32 shlwapi
>>>>
>>>> C_SRCS = \
>>>> bitmap.c \
>>>> diff --git a/dlls/windowscodecs/tests/pngformat.c
>>>> b/dlls/windowscodecs/tests/pngformat.c
>>>> index 34cb533..20b6e93 100644
>>>> --- a/dlls/windowscodecs/tests/pngformat.c
>>>> +++ b/dlls/windowscodecs/tests/pngformat.c
>>>> @@ -25,6 +25,7 @@
>>>> #include "windef.h"
>>>> #include "wincodec.h"
>>>> #include "wine/test.h"
>>>> +#include "shlwapi.h"
>>>>
>>>> /* 1x1 pixel PNG image */
>>>> static const char png_no_color_profile[] = {
>>>> @@ -277,21 +278,16 @@ static IWICImagingFactory *factory;
>>>>
>>>> static IWICBitmapDecoder *create_decoder(const void *image_data, UINT
>>>> image_size)
>>>> {
>>>> - HGLOBAL hmem;
>>>> - BYTE *data;
>>>> HRESULT hr;
>>>> IWICBitmapDecoder *decoder = NULL;
>>>> IStream *stream;
>>>> GUID format;
>>>> LONG refcount;
>>>> + ULARGE_INTEGER pos;
>>>> + LARGE_INTEGER zero;
>>>>
>>>> - hmem = GlobalAlloc(0, image_size);
>>>> - data = GlobalLock(hmem);
>>>> - memcpy(data, image_data, image_size);
>>>> - GlobalUnlock(hmem);
>>>> -
>>>> - hr = CreateStreamOnHGlobal(hmem, TRUE, &stream);
>>>> - ok(hr == S_OK, "CreateStreamOnHGlobal error %#x\n", hr);
>>>> + stream = SHCreateMemStream (image_data, image_size);
>>>> + ok(stream != NULL, "SHCreateMemStream error\n");
>>>>
>>>> hr = IWICImagingFactory_CreateDecoderFromStream(factory, stream,
>>>> NULL, 0, &decoder);
>>>> ok(hr == S_OK, "CreateDecoderFromStream error %#x\n", hr);
>>>> @@ -302,6 +298,11 @@ static IWICBitmapDecoder *create_decoder(const void
>>>> *image_data, UINT image_size
>>>> ok(IsEqualGUID(&format, &GUID_ContainerFormatPng),
>>>> "wrong container format %s\n", wine_dbgstr_guid(&format));
>>>>
>>>> + zero.QuadPart = 0;
>>>> + IStream_Seek (stream, zero, STREAM_SEEK_CUR, &pos);
>>>> + todo_wine ok(pos.QuadPart < image_size, "seek beyond the end of
>>>> stream: %lu >= %u\n",
>>>> + pos.QuadPart, image_size);
>>>> +
>>>> refcount = IStream_Release(stream);
>>>> ok(refcount > 0, "expected stream refcount > 0\n");
>>>>
>>>> --
>>>> 2.12.1
>>>>
>>>>
>>>>
>> --
>> best, Viktor.
>>
--
best, Viktor.
More information about the wine-devel
mailing list