Signed-off-by: Dmitry Timoshkov dmitry@baikal.ru --- dlls/windowscodecs/tests/converter.c | 337 ++++++++++++++++++++++----- 1 file changed, 283 insertions(+), 54 deletions(-)
diff --git a/dlls/windowscodecs/tests/converter.c b/dlls/windowscodecs/tests/converter.c index 5f9f1d88a3..c221f3b99e 100644 --- a/dlls/windowscodecs/tests/converter.c +++ b/dlls/windowscodecs/tests/converter.c @@ -316,6 +316,20 @@ static const struct bitmap_data testdata_BlackWhite = { static const struct bitmap_data testdata_1bppIndexed = { &GUID_WICPixelFormat1bppIndexed, 1, bits_1bpp, 32, 2, 96.0, 96.0};
+/* some encoders (like BMP) require data to be 4-bytes aligned */ +static const BYTE bits_2bpp[] = { + 0x55,0x55,0x55,0x55, + 0xaa,0xaa,0xaa,0xaa}; +static const struct bitmap_data testdata_2bppIndexed = { + &GUID_WICPixelFormat2bppIndexed, 2, bits_2bpp, 16, 2, 96.0, 96.0}; + +/* some encoders (like BMP) require data to be 4-bytes aligned */ +static const BYTE bits_4bpp[] = { + 0x55,0x55,0x55,0x55, + 0xaa,0xaa,0xaa,0xaa}; +static const struct bitmap_data testdata_4bppIndexed = { + &GUID_WICPixelFormat4bppIndexed, 4, bits_4bpp, 8, 2, 96.0, 96.0}; + static const BYTE bits_8bpp[] = { 0,1,2,3, 4,5,6,7}; @@ -632,64 +646,224 @@ static void test_encoder_properties(const CLSID* clsid_encoder, IPropertyBag2 *o } }
-static void check_bmp_format(IStream *stream, const struct bitmap_data *data) +static void load_stream(IUnknown *reader, IStream *stream) +{ + HRESULT hr; + IWICPersistStream *persist; +#ifdef WORDS_BIGENDIAN + DWORD persist_options = WICPersistOptionBigEndian; +#else + DWORD persist_options = WICPersistOptionLittleEndian; +#endif + + hr = IUnknown_QueryInterface(reader, &IID_IWICPersistStream, (void **)&persist); + ok(hr == S_OK, "QueryInterface failed, hr=%x\n", hr); + + hr = IWICPersistStream_LoadEx(persist, stream, NULL, persist_options); + ok(hr == S_OK, "LoadEx failed, hr=%x\n", hr); + + IWICPersistStream_Release(persist); +} + +static void check_tiff_format(IStream *stream, const WICPixelFormatGUID *format) { - BITMAPFILEHEADER bfh; - BITMAPINFOHEADER bih; HRESULT hr; - ULONG len; + IWICMetadataReader *reader; + PROPVARIANT id, value; + struct + { + USHORT byte_order; + USHORT version; + ULONG dir_offset; + } tiff; + LARGE_INTEGER pos; + UINT count, i; + int width, height, bps, photo, samples, colormap; + struct + { + int id, *value; + } tag[] = + { + { 0x100, &width }, { 0x101, &height }, { 0x102, &bps }, + { 0x106, &photo }, { 0x115, &samples }, { 0x140, &colormap } + }; + + memset(&tiff, 0, sizeof(tiff)); + hr = IStream_Read(stream, &tiff, sizeof(tiff), NULL); + ok(hr == S_OK, "IStream_Read error %#x\n", hr); + ok(tiff.byte_order == MAKEWORD('I','I') || tiff.byte_order == MAKEWORD('M','M'), + "wrong TIFF byte order mark %02x\n", tiff.byte_order); + ok(tiff.version == 42, "wrong TIFF version %u\n", tiff.version); + + pos.QuadPart = tiff.dir_offset; + hr = IStream_Seek(stream, pos, SEEK_SET, NULL); + ok(hr == S_OK, "IStream_Seek error %#x\n", hr); + + hr = CoCreateInstance(&CLSID_WICIfdMetadataReader, NULL, CLSCTX_INPROC_SERVER, + &IID_IWICMetadataReader, (void **)&reader); + ok(hr == S_OK, "CoCreateInstance error %#x\n", hr); + + load_stream((IUnknown *)reader, stream);
- hr = IStream_Read(stream, &bfh, sizeof(bfh), &len); - ok(hr == S_OK, "Failed to read file header, hr %#x.\n", hr); + hr = IWICMetadataReader_GetCount(reader, &count); + ok(hr == S_OK, "GetCount error %#x\n", hr); + ok(count != 0, "wrong count %u\n", count);
- hr = IStream_Read(stream, &bih, sizeof(bih), &len); - ok(hr == S_OK, "Failed to read file header, hr %#x.\n", hr); + for (i = 0; i < sizeof(tag)/sizeof(tag[0]); i++) + { + PropVariantInit(&id); + PropVariantInit(&value); + + id.vt = VT_UI2; + U(id).uiVal = tag[i].id; + hr = IWICMetadataReader_GetValue(reader, NULL, &id, &value); + ok(hr == S_OK || (tag[i].id == 0x140 && hr == WINCODEC_ERR_PROPERTYNOTFOUND), + "GetValue(%04x) error %#x\n", tag[i].id, hr); + if (hr == S_OK) + { + ok(value.vt == VT_UI2 || value.vt == VT_UI4 || value.vt == (VT_UI2 | VT_VECTOR), "wrong vt: %d\n", value.vt); + tag[i].value[0] = U(value).uiVal; + } + else + tag[i].value[0] = -1; + }
- ok(bfh.bfType == 0x4d42, "Unexpected header type, %#x.\n", bfh.bfType); - ok(bfh.bfSize != 0, "Unexpected bitmap size %d.\n", bfh.bfSize); - ok(bfh.bfReserved1 == 0, "Unexpected bfReserved1 field.\n"); - ok(bfh.bfReserved2 == 0, "Unexpected bfReserved2 field.\n"); + IWICMetadataReader_Release(reader);
- if (IsEqualGUID(data->format, &GUID_WICPixelFormat1bppIndexed) - || IsEqualGUID(data->format, &GUID_WICPixelFormat8bppIndexed)) + if (IsEqualGUID(format, &GUID_WICPixelFormatBlackWhite)) { - /* TODO: test with actual palette size */ - ok(bfh.bfOffBits > sizeof(bfh) + sizeof(bih), "Unexpected data offset %d, format %s.\n", - bfh.bfOffBits, wine_dbgstr_guid(data->format)); + ok(width == 32, "wrong width %u\n", width); + ok(height == 2, "wrong height %u\n", height); + + ok(bps == 1, "wrong bps %d\n", bps); + ok(photo == 1, "wrong photometric %d\n", photo); + ok(samples == 1, "wrong samples %d\n", samples); + ok(colormap == -1, "wrong colormap %d\n", colormap); } - else - ok(bfh.bfOffBits == sizeof(bfh) + sizeof(bih), "Unexpected data offset %d, format %s.\n", - bfh.bfOffBits, wine_dbgstr_guid(data->format)); - - ok(bih.biSize == sizeof(bih), "Unexpected header size %d.\n", bih.biSize); - ok(bih.biWidth == data->width, "Unexpected bitmap width %d.\n", bih.biWidth); - ok(bih.biHeight == data->height, "Unexpected bitmap height %d.\n", bih.biHeight); - ok(bih.biPlanes == 1, "Unexpected planes count %d.\n", bih.biPlanes); - - if (IsEqualGUID(data->format, &GUID_WICPixelFormat1bppIndexed)) - ok(bih.biBitCount == 1, "Unexpected bit count %u, format %s.\n", bih.biBitCount, - wine_dbgstr_guid(data->format)); - else if (IsEqualGUID(data->format, &GUID_WICPixelFormat8bppIndexed)) - ok(bih.biBitCount == 8, "Unexpected bit count %u, format %s.\n", bih.biBitCount, - wine_dbgstr_guid(data->format)); - else if (IsEqualGUID(data->format, &GUID_WICPixelFormat32bppBGR)) - ok(bih.biBitCount == 32, "Unexpected bit count %u, format %s.\n", bih.biBitCount, - wine_dbgstr_guid(data->format)); - - ok(bih.biCompression == BI_RGB, "Unexpected compression mode %u.\n", bih.biCompression); -todo_wine - ok(bih.biSizeImage == 0, "Unexpected image size %d.\n", bih.biSizeImage); - ok(bih.biXPelsPerMeter == 3780 || broken(bih.biXPelsPerMeter == 0) /* XP */, "Unexpected horz resolution %d.\n", - bih.biXPelsPerMeter); - ok(bih.biYPelsPerMeter == 3780 || broken(bih.biYPelsPerMeter == 0) /* XP */, "Unexpected vert resolution %d.\n", - bih.biYPelsPerMeter); + else if (IsEqualGUID(format, &GUID_WICPixelFormat1bppIndexed)) + { + ok(width == 32, "wrong width %u\n", width); + ok(height == 2, "wrong height %u\n", height); + + ok(bps == 1, "wrong bps %d\n", bps); + ok(photo == 3, "wrong photometric %d\n", photo); + ok(samples == 1, "wrong samples %d\n", samples); + ok(colormap == 6, "wrong colormap %d\n", colormap); + } + else if (IsEqualGUID(format, &GUID_WICPixelFormat2bppIndexed)) + { + ok(width == 32, "wrong width %u\n", width); + ok(height == 2, "wrong height %u\n", height); + + ok(bps == 1, "wrong bps %d\n", bps); + ok(photo == 3, "wrong photometric %d\n", photo); + ok(samples == 1, "wrong samples %d\n", samples); + ok(colormap == 6, "wrong colormap %d\n", colormap); + } + else if (IsEqualGUID(format, &GUID_WICPixelFormat4bppIndexed)) + { + ok(width == 8, "wrong width %u\n", width); + ok(height == 2, "wrong height %u\n", height);
- /* FIXME: test actual data */ + ok(bps == 4, "wrong bps %d\n", bps); + ok(photo == 3, "wrong photometric %d\n", photo); + ok(samples == 1, "wrong samples %d\n", samples); + ok(colormap == 48, "wrong colormap %d\n", colormap); + } + else if (IsEqualGUID(format, &GUID_WICPixelFormat8bppIndexed)) + { + ok(width == 4, "wrong width %u\n", width); + ok(height == 2, "wrong height %u\n", height); + + ok(bps == 8, "wrong bps %d\n", bps); + ok(photo == 3, "wrong photometric %d\n", photo); + ok(samples == 1, "wrong samples %d\n", samples); + ok(colormap == 768, "wrong colormap %d\n", colormap); + } + else if (IsEqualGUID(format, &GUID_WICPixelFormat24bppBGR)) + { + ok(width == 4, "wrong width %u\n", width); + ok(height == 2, "wrong height %u\n", height); + + ok(bps == 3, "wrong bps %d\n", bps); + ok(photo == 2, "wrong photometric %d\n", photo); + ok(samples == 3, "wrong samples %d\n", samples); + ok(colormap == -1, "wrong colormap %d\n", colormap); + } + else + ok(0, "unknown TIFF pixel format %s\n", wine_dbgstr_guid(format)); }
-static void check_tiff_format(IStream *stream, const WICPixelFormatGUID *format) +static void check_bmp_format(IStream *stream, const WICPixelFormatGUID *format) { - /* FIXME */ + HRESULT hr; + BITMAPFILEHEADER bfh; + BITMAPV5HEADER bih; + + memset(&bfh, 0, sizeof(bfh)); + hr = IStream_Read(stream, &bfh, sizeof(bfh), NULL); + ok(hr == S_OK, "IStream_Read error %#x\n", hr); + + ok(bfh.bfType == 0x4d42, "wrong BMP signature %02x\n", bfh.bfType); + ok(bfh.bfReserved1 == 0, "wrong bfReserved1 %02x\n", bfh.bfReserved1); + ok(bfh.bfReserved2 == 0, "wrong bfReserved2 %02x\n", bfh.bfReserved2); + + memset(&bih, 0, sizeof(bih)); + hr = IStream_Read(stream, &bih, sizeof(bih), NULL); + ok(hr == S_OK, "IStream_Read error %#x\n", hr); + + if (IsEqualGUID(format, &GUID_WICPixelFormat1bppIndexed)) + { + ok(bih.bV5Width == 32, "wrong width %u\n", bih.bV5Width); + ok(bih.bV5Height == 2, "wrong height %u\n", bih.bV5Height); + + ok(bih.bV5Planes == 1, "wrong Planes %d\n", bih.bV5Planes); + ok(bih.bV5BitCount == 1, "wrong BitCount %d\n", bih.bV5BitCount); + ok(bih.bV5ClrUsed == 256, "wrong ClrUsed %d\n", bih.bV5ClrUsed); + ok(bih.bV5ClrImportant == 256, "wrong ClrImportant %d\n", bih.bV5ClrImportant); + } + else if (IsEqualGUID(format, &GUID_WICPixelFormat2bppIndexed)) + { + ok(bih.bV5Width == 16, "wrong width %u\n", bih.bV5Width); + ok(bih.bV5Height == 2, "wrong height %u\n", bih.bV5Height); + + ok(bih.bV5Planes == 1, "wrong Planes %d\n", bih.bV5Planes); + ok(bih.bV5BitCount == 2, "wrong BitCount %d\n", bih.bV5BitCount); + ok(bih.bV5ClrUsed == 256, "wrong ClrUsed %d\n", bih.bV5ClrUsed); + ok(bih.bV5ClrImportant == 256, "wrong ClrImportant %d\n", bih.bV5ClrImportant); + } + else if (IsEqualGUID(format, &GUID_WICPixelFormat4bppIndexed)) + { + ok(bih.bV5Width == 8, "wrong width %u\n", bih.bV5Width); + ok(bih.bV5Height == 2, "wrong height %u\n", bih.bV5Height); + + ok(bih.bV5Planes == 1, "wrong Planes %d\n", bih.bV5Planes); + ok(bih.bV5BitCount == 4, "wrong BitCount %d\n", bih.bV5BitCount); + ok(bih.bV5ClrUsed == 256, "wrong ClrUsed %d\n", bih.bV5ClrUsed); + ok(bih.bV5ClrImportant == 256, "wrong ClrImportant %d\n", bih.bV5ClrImportant); + } + else if (IsEqualGUID(format, &GUID_WICPixelFormat8bppIndexed)) + { + ok(bih.bV5Width == 4, "wrong width %u\n", bih.bV5Width); + ok(bih.bV5Height == 2, "wrong height %u\n", bih.bV5Height); + + ok(bih.bV5Planes == 1, "wrong Planes %d\n", bih.bV5Planes); + ok(bih.bV5BitCount == 8, "wrong BitCount %d\n", bih.bV5BitCount); + ok(bih.bV5ClrUsed == 256, "wrong ClrUsed %d\n", bih.bV5ClrUsed); + ok(bih.bV5ClrImportant == 256, "wrong ClrImportant %d\n", bih.bV5ClrImportant); + } + else if (IsEqualGUID(format, &GUID_WICPixelFormat32bppBGR)) + { + ok(bih.bV5Width == 4, "wrong width %u\n", bih.bV5Width); + ok(bih.bV5Height == 2, "wrong height %u\n", bih.bV5Height); + + ok(bih.bV5Planes == 1, "wrong Planes %d\n", bih.bV5Planes); + ok(bih.bV5BitCount == 32, "wrong BitCount %d\n", bih.bV5BitCount); + ok(bih.bV5ClrUsed == 0, "wrong ClrUsed %d\n", bih.bV5ClrUsed); + ok(bih.bV5ClrImportant == 0, "wrong ClrImportant %d\n", bih.bV5ClrImportant); + } + else + ok(0, "unknown BMP pixel format %s\n", wine_dbgstr_guid(format)); }
static unsigned be_uint(unsigned val) @@ -746,6 +920,28 @@ static void check_png_format(IStream *stream, const WICPixelFormatGUID *format) ok(png.filter == 0, "wrong filter %d\n", png.filter); ok(png.interlace == 0, "wrong interlace %d\n", png.interlace); } + else if (IsEqualGUID(format, &GUID_WICPixelFormat2bppIndexed)) + { + ok(be_uint(png.width) == 16, "wrong width %u\n", be_uint(png.width)); + ok(be_uint(png.height) == 2, "wrong height %u\n", be_uint(png.height)); + + ok(png.bit_depth == 2, "wrong bit_depth %d\n", png.bit_depth); + ok(png.color_type == 3, "wrong color_type %d\n", png.color_type); + ok(png.compression == 0, "wrong compression %d\n", png.compression); + ok(png.filter == 0, "wrong filter %d\n", png.filter); + ok(png.interlace == 0, "wrong interlace %d\n", png.interlace); + } + else if (IsEqualGUID(format, &GUID_WICPixelFormat4bppIndexed)) + { + ok(be_uint(png.width) == 8, "wrong width %u\n", be_uint(png.width)); + ok(be_uint(png.height) == 2, "wrong height %u\n", be_uint(png.height)); + + ok(png.bit_depth == 4, "wrong bit_depth %d\n", png.bit_depth); + ok(png.color_type == 3, "wrong color_type %d\n", png.color_type); + ok(png.compression == 0, "wrong compression %d\n", png.compression); + ok(png.filter == 0, "wrong filter %d\n", png.filter); + ok(png.interlace == 0, "wrong interlace %d\n", png.interlace); + } else if (IsEqualGUID(format, &GUID_WICPixelFormat8bppIndexed)) { ok(be_uint(png.width) == 4, "wrong width %u\n", be_uint(png.width)); @@ -772,7 +968,7 @@ static void check_png_format(IStream *stream, const WICPixelFormatGUID *format) ok(0, "unknown PNG pixel format %s\n", wine_dbgstr_guid(format)); }
-static void check_bitmap_format(IStream *stream, const CLSID *encoder, const struct bitmap_data *dst) +static void check_bitmap_format(IStream *stream, const CLSID *encoder, const WICPixelFormatGUID *format) { HRESULT hr; LARGE_INTEGER pos; @@ -782,11 +978,11 @@ static void check_bitmap_format(IStream *stream, const CLSID *encoder, const str ok(hr == S_OK, "IStream_Seek error %#x\n", hr);
if (IsEqualGUID(encoder, &CLSID_WICPngEncoder)) - check_png_format(stream, dst->format); + check_png_format(stream, format); else if (IsEqualGUID(encoder, &CLSID_WICBmpEncoder)) - check_bmp_format(stream, dst); + check_bmp_format(stream, format); else if (IsEqualGUID(encoder, &CLSID_WICTiffEncoder)) - check_tiff_format(stream, dst->format); + check_tiff_format(stream, format); else ok(0, "unknown encoder %s\n", wine_dbgstr_guid(encoder));
@@ -991,6 +1187,8 @@ static void test_multi_encoder(const struct bitmap_data **srcs, const CLSID* cls ok(SUCCEEDED(hr), "WriteSource(%dx%d) failed, hr=%x (%s)\n", rc->Width, rc->Height, hr, name); else ok(hr == S_OK || + broken(hr == E_NOTIMPL && IsEqualGUID(clsid_encoder, &CLSID_WICBmpEncoder) && srcs[i]->bpp == 2) || + broken(hr == E_NOTIMPL && IsEqualGUID(clsid_encoder, &CLSID_WICTiffEncoder) && srcs[i]->bpp == 2) || broken(hr == E_INVALIDARG && IsEqualGUID(clsid_encoder, &CLSID_WICBmpEncoder) && IsEqualGUID(srcs[i]->format, &GUID_WICPixelFormatBlackWhite)) /* XP */, "WriteSource(NULL) failed, hr=%x (%s)\n", hr, name); } @@ -1022,7 +1220,7 @@ static void test_multi_encoder(const struct bitmap_data **srcs, const CLSID* cls hr = IWICBitmapEncoder_Commit(encoder); ok(SUCCEEDED(hr), "Commit failed, hr=%x\n", hr);
- check_bitmap_format(stream, clsid_encoder, dsts[0]); + check_bitmap_format(stream, clsid_encoder, dsts[0]->format); }
if (SUCCEEDED(hr)) @@ -1082,7 +1280,12 @@ static void test_multi_encoder(const struct bitmap_data **srcs, const CLSID* cls ok(ret == count, "expected %u, got %u\n", count, ret); if (IsEqualGUID(clsid_decoder, &CLSID_WICPngDecoder)) { - ok(count == 256 || count == 2 /* newer libpng versions */, "expected 256, got %u (%s)\n", count, name); + /* Newer libpng versions don't accept larger palettes than the declared + * bit depth, so we need to generate the palette of the correct length. + */ + ok(count == 256 || (dsts[i]->bpp == 1 && count == 2) || + (dsts[i]->bpp == 2 && count == 4) || (dsts[i]->bpp == 4 && count == 16), + "expected 256, got %u (%s)\n", count, name);
ok(colors[0] == 0x11111111, "got %08x (%s)\n", colors[0], name); ok(colors[1] == 0x22222222, "got %08x (%s)\n", colors[1], name); @@ -1090,8 +1293,11 @@ static void test_multi_encoder(const struct bitmap_data **srcs, const CLSID* cls { ok(colors[2] == 0x33333333, "got %08x (%s)\n", colors[2], name); ok(colors[3] == 0x44444444, "got %08x (%s)\n", colors[3], name); - ok(colors[4] == 0x55555555, "got %08x (%s)\n", colors[4], name); - ok(colors[5] == 0, "got %08x (%s)\n", colors[5], name); + if (count > 4) + { + ok(colors[4] == 0x55555555, "got %08x (%s)\n", colors[4], name); + ok(colors[5] == 0, "got %08x (%s)\n", colors[5], name); + } } } else if (IsEqualGUID(clsid_decoder, &CLSID_WICBmpDecoder) || @@ -1109,6 +1315,17 @@ static void test_multi_encoder(const struct bitmap_data **srcs, const CLSID* cls ok(colors[4] == 0xff555555, "got %08x (%s)\n", colors[4], name); ok(colors[5] == 0xff000000, "got %08x (%s)\n", colors[5], name); } + else if (IsEqualGUID(dsts[i]->format, &GUID_WICPixelFormat4bppIndexed)) + { + ok(count == 16, "expected 16, got %u (%s)\n", count, name); + + ok(colors[0] == 0xff111111, "got %08x (%s)\n", colors[0], name); + ok(colors[1] == 0xff222222, "got %08x (%s)\n", colors[1], name); + ok(colors[2] == 0xff333333, "got %08x (%s)\n", colors[2], name); + ok(colors[3] == 0xff444444, "got %08x (%s)\n", colors[3], name); + ok(colors[4] == 0xff555555, "got %08x (%s)\n", colors[4], name); + ok(colors[5] == 0xff000000, "got %08x (%s)\n", colors[5], name); + } else { ok(count == 2, "expected 2, got %u (%s)\n", count, name); @@ -1260,6 +1477,10 @@ START_TEST(converter) &testdata_BlackWhite, &CLSID_WICPngDecoder, "PNG encoder BlackWhite"); test_encoder(&testdata_1bppIndexed, &CLSID_WICPngEncoder, &testdata_1bppIndexed, &CLSID_WICPngDecoder, "PNG encoder 1bppIndexed"); + test_encoder(&testdata_2bppIndexed, &CLSID_WICPngEncoder, + &testdata_2bppIndexed, &CLSID_WICPngDecoder, "PNG encoder 2bppIndexed"); + test_encoder(&testdata_4bppIndexed, &CLSID_WICPngEncoder, + &testdata_4bppIndexed, &CLSID_WICPngDecoder, "PNG encoder 4bppIndexed"); test_encoder(&testdata_8bppIndexed, &CLSID_WICPngEncoder, &testdata_8bppIndexed, &CLSID_WICPngDecoder, "PNG encoder 8bppIndexed"); test_encoder(&testdata_24bppBGR, &CLSID_WICPngEncoder, @@ -1271,6 +1492,10 @@ if (!strcmp(winetest_platform, "windows")) /* FIXME: enable once implemented in &testdata_1bppIndexed, &CLSID_WICBmpDecoder, "BMP encoder BlackWhite"); test_encoder(&testdata_1bppIndexed, &CLSID_WICBmpEncoder, &testdata_1bppIndexed, &CLSID_WICBmpDecoder, "BMP encoder 1bppIndexed"); + test_encoder(&testdata_2bppIndexed, &CLSID_WICBmpEncoder, + &testdata_2bppIndexed, &CLSID_WICBmpDecoder, "BMP encoder 2bppIndexed"); + test_encoder(&testdata_4bppIndexed, &CLSID_WICBmpEncoder, + &testdata_4bppIndexed, &CLSID_WICBmpDecoder, "BMP encoder 4bppIndexed"); test_encoder(&testdata_8bppIndexed, &CLSID_WICBmpEncoder, &testdata_8bppIndexed, &CLSID_WICBmpDecoder, "BMP encoder 8bppIndexed"); } @@ -1283,6 +1508,10 @@ if (!strcmp(winetest_platform, "windows")) /* FIXME: enable once implemented in { test_encoder(&testdata_1bppIndexed, &CLSID_WICTiffEncoder, &testdata_1bppIndexed, &CLSID_WICTiffDecoder, "TIFF encoder 1bppIndexed"); + test_encoder(&testdata_2bppIndexed, &CLSID_WICTiffEncoder, + &testdata_2bppIndexed, &CLSID_WICTiffDecoder, "TIFF encoder 2bppIndexed"); + test_encoder(&testdata_4bppIndexed, &CLSID_WICTiffEncoder, + &testdata_4bppIndexed, &CLSID_WICTiffDecoder, "TIFF encoder 4bppIndexed"); test_encoder(&testdata_8bppIndexed, &CLSID_WICTiffEncoder, &testdata_8bppIndexed, &CLSID_WICTiffDecoder, "TIFF encoder 8bppIndexed"); }
Hi,
While running your changed tests on Windows, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=45226
Your paranoid android.
=== wxppro (32 bit report) ===
windowscodecs: converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (BMP encoder 2bppIndexed) converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (TIFF encoder 2bppIndexed)
=== w2003std (32 bit report) ===
windowscodecs: converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (BMP encoder 2bppIndexed) converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (TIFF encoder 2bppIndexed)
=== wvistau64 (32 bit report) ===
windowscodecs: converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (BMP encoder 2bppIndexed) converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (TIFF encoder 2bppIndexed)
=== wvistau64_zh_CN (32 bit report) ===
windowscodecs: converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (BMP encoder 2bppIndexed) converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (TIFF encoder 2bppIndexed)
=== wvistau64_fr (32 bit report) ===
windowscodecs: converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (BMP encoder 2bppIndexed) converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (TIFF encoder 2bppIndexed)
=== wvistau64_he (32 bit report) ===
windowscodecs: converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (BMP encoder 2bppIndexed) converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (TIFF encoder 2bppIndexed)
=== w2008s64 (32 bit report) ===
windowscodecs: converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (BMP encoder 2bppIndexed) converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (TIFF encoder 2bppIndexed)
=== w7u (32 bit report) ===
windowscodecs: converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (BMP encoder 2bppIndexed) converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (TIFF encoder 2bppIndexed)
=== w7pro64 (32 bit report) ===
windowscodecs: converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (BMP encoder 2bppIndexed) converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (TIFF encoder 2bppIndexed)
=== w8 (32 bit report) ===
windowscodecs: converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (BMP encoder 2bppIndexed) converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (TIFF encoder 2bppIndexed)
=== w8adm (32 bit report) ===
windowscodecs: converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (BMP encoder 2bppIndexed) converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (TIFF encoder 2bppIndexed)
=== w864 (32 bit report) ===
windowscodecs: converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (BMP encoder 2bppIndexed) converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (TIFF encoder 2bppIndexed)
=== w1064 (32 bit report) ===
windowscodecs: converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (BMP encoder 2bppIndexed) converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (TIFF encoder 2bppIndexed)
=== wvistau64 (64 bit report) ===
windowscodecs: converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (BMP encoder 2bppIndexed) converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (TIFF encoder 2bppIndexed)
=== w2008s64 (64 bit report) ===
windowscodecs: converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (BMP encoder 2bppIndexed) converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (TIFF encoder 2bppIndexed)
=== w7pro64 (64 bit report) ===
windowscodecs: converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (BMP encoder 2bppIndexed) converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (TIFF encoder 2bppIndexed)
=== w864 (64 bit report) ===
windowscodecs: converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (BMP encoder 2bppIndexed) converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (TIFF encoder 2bppIndexed)
=== w1064 (64 bit report) ===
windowscodecs: converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (BMP encoder 2bppIndexed) converter.c:1154: Test failed: SetPixelFormat changed the format to {6fddc324-4e03-4bfe-b185-3d77768dc903} (TIFF encoder 2bppIndexed)