[2/3] windowscodecs: Test for png codec seeking too far
Vincent Povirk
madewokherd at gmail.com
Thu Mar 30 01:57:08 CDT 2017
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.
>
More information about the wine-devel
mailing list