[2/3] windowscodecs: Test for png codec seeking too far
Viktor Semykin
thesame.ml at gmail.com
Wed Mar 29 23:12:49 CDT 2017
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