Module: wine Branch: master Commit: 7ca07bc8afa3a4d3ef25e7dc6cf5be13d2d7ddc8 URL: https://source.winehq.org/git/wine.git/?a=commit;h=7ca07bc8afa3a4d3ef25e7dc6...
Author: Ziqing Hui zhui@codeweavers.com Date: Tue Jul 21 13:48:52 2020 +0800
windowscodecs/tests: Remove the test data in test_dds_decoder_initialize().
Signed-off-by: Ziqing Hui zhui@codeweavers.com Signed-off-by: Esme Povirk esme@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/windowscodecs/tests/ddsformat.c | 87 +++++++++++++++--------------------- 1 file changed, 36 insertions(+), 51 deletions(-)
diff --git a/dlls/windowscodecs/tests/ddsformat.c b/dlls/windowscodecs/tests/ddsformat.c index b8ca452a43..30982fbb30 100644 --- a/dlls/windowscodecs/tests/ddsformat.c +++ b/dlls/windowscodecs/tests/ddsformat.c @@ -266,43 +266,59 @@ static BYTE test_dds_dxt3[] = { 0x00, 0x00, 0x00, 0x00 };
+static BYTE test_dds_bad_magic[sizeof(test_dds_dxt1)]; +static BYTE test_dds_bad_header[sizeof(test_dds_dxt1)]; +static BYTE test_byte[1] = { 0 }; +static BYTE test_word[2] = { 0 }; +static BYTE test_dword[4] = { 0 }; +static BYTE test_qword_a[8] = { 0 }; +static BYTE test_qword_b[8] = "DDS "; + static struct test_data { BYTE *data; UINT size; + HRESULT init_hr; UINT expected_frame_count; UINT expected_bytes_per_block; const GUID *expected_pixel_format; WICDdsParameters expected_parameters; BOOL wine_init; } test_data[] = { - { test_dds_bgr565, sizeof(test_dds_bgr565), 1, 2, &GUID_WICPixelFormat32bppBGRA, + { test_dds_bgr565, sizeof(test_dds_bgr565), WINCODEC_ERR_BADHEADER, 1, 2, &GUID_WICPixelFormat32bppBGRA, { 4, 4, 1, 1, 1, DXGI_FORMAT_B5G6R5_UNORM, WICDdsTexture2D, WICDdsAlphaModeUnknown }, TRUE }, - { test_dds_24bpp, sizeof(test_dds_24bpp), 1, 3, &GUID_WICPixelFormat32bppBGRA, + { test_dds_24bpp, sizeof(test_dds_24bpp), WINCODEC_ERR_BADHEADER, 1, 3, &GUID_WICPixelFormat32bppBGRA, { 1, 1, 1, 1, 1, DXGI_FORMAT_UNKNOWN, WICDdsTexture2D, WICDdsAlphaModeUnknown }, TRUE }, - { test_dds_32bpp_xrgb, sizeof(test_dds_32bpp_xrgb), 1, 4, &GUID_WICPixelFormat32bppBGRA, + { test_dds_32bpp_xrgb, sizeof(test_dds_32bpp_xrgb), WINCODEC_ERR_BADHEADER, 1, 4, &GUID_WICPixelFormat32bppBGRA, { 1, 1, 1, 1, 1, DXGI_FORMAT_B8G8R8X8_UNORM, WICDdsTexture2D, WICDdsAlphaModeUnknown }, TRUE }, - { test_dds_32bpp_argb, sizeof(test_dds_32bpp_argb), 1, 4, &GUID_WICPixelFormat32bppBGRA, + { test_dds_32bpp_argb, sizeof(test_dds_32bpp_argb), WINCODEC_ERR_BADHEADER, 1, 4, &GUID_WICPixelFormat32bppBGRA, { 1, 1, 1, 1, 1, DXGI_FORMAT_B8G8R8A8_UNORM, WICDdsTexture2D, WICDdsAlphaModeUnknown }, TRUE }, - { test_dds_64bpp, sizeof(test_dds_64bpp), 1, 8, &GUID_WICPixelFormat32bppBGRA, + { test_dds_64bpp, sizeof(test_dds_64bpp), WINCODEC_ERR_BADHEADER, 1, 8, &GUID_WICPixelFormat32bppBGRA, { 1, 1, 1, 1, 1, DXGI_FORMAT_R16G16B16A16_UNORM, WICDdsTexture2D, WICDdsAlphaModeUnknown }, TRUE }, - { test_dds_96bpp, sizeof(test_dds_96bpp), 1, 12, &GUID_WICPixelFormat32bppBGRA, + { test_dds_96bpp, sizeof(test_dds_96bpp), WINCODEC_ERR_BADHEADER, 1, 12, &GUID_WICPixelFormat32bppBGRA, { 1, 1, 1, 1, 1, DXGI_FORMAT_R32G32B32_FLOAT, WICDdsTexture2D, WICDdsAlphaModeUnknown }, TRUE }, - { test_dds_128bpp, sizeof(test_dds_128bpp), 1, 16, &GUID_WICPixelFormat32bppBGRA, + { test_dds_128bpp, sizeof(test_dds_128bpp), WINCODEC_ERR_BADHEADER, 1, 16, &GUID_WICPixelFormat32bppBGRA, { 1, 1, 1, 1, 1, DXGI_FORMAT_R32G32B32A32_FLOAT, WICDdsTexture2D, WICDdsAlphaModeUnknown }, TRUE }, - { test_dds_cube, sizeof(test_dds_cube), 18, 8, &GUID_WICPixelFormat32bppPBGRA, + { test_dds_cube, sizeof(test_dds_cube), WINCODEC_ERR_BADHEADER, 18, 8, &GUID_WICPixelFormat32bppPBGRA, { 4, 4, 1, 3, 1, DXGI_FORMAT_BC1_UNORM, WICDdsTextureCube, WICDdsAlphaModePremultiplied }, TRUE }, - { test_dds_cube_dx10, sizeof(test_dds_cube_dx10), 18, 8, &GUID_WICPixelFormat32bppBGRA, + { test_dds_cube_dx10, sizeof(test_dds_cube_dx10), WINCODEC_ERR_BADHEADER, 18, 8, &GUID_WICPixelFormat32bppBGRA, { 4, 4, 1, 3, 1, DXGI_FORMAT_BC1_UNORM, WICDdsTextureCube, WICDdsAlphaModeUnknown }, TRUE }, - { test_dds_dxt1, sizeof(test_dds_dxt1), 1, 8, &GUID_WICPixelFormat32bppPBGRA, + { test_dds_dxt1, sizeof(test_dds_dxt1), S_OK, 1, 8, &GUID_WICPixelFormat32bppPBGRA, { 4, 4, 1, 1, 1, DXGI_FORMAT_BC1_UNORM, WICDdsTexture2D, WICDdsAlphaModePremultiplied } }, - { test_dds_mipmaps, sizeof(test_dds_mipmaps), 3, 8, &GUID_WICPixelFormat32bppPBGRA, + { test_dds_mipmaps, sizeof(test_dds_mipmaps), S_OK, 3, 8, &GUID_WICPixelFormat32bppPBGRA, { 4, 4, 1, 3, 1, DXGI_FORMAT_BC1_UNORM, WICDdsTexture2D, WICDdsAlphaModePremultiplied } }, - { test_dds_volume, sizeof(test_dds_volume), 7, 8, &GUID_WICPixelFormat32bppPBGRA, + { test_dds_volume, sizeof(test_dds_volume), S_OK, 7, 8, &GUID_WICPixelFormat32bppPBGRA, { 4, 4, 4, 3, 1, DXGI_FORMAT_BC1_UNORM, WICDdsTexture3D, WICDdsAlphaModePremultiplied } }, - { test_dds_array, sizeof(test_dds_array), 9, 8, &GUID_WICPixelFormat32bppBGRA, + { test_dds_array, sizeof(test_dds_array), S_OK, 9, 8, &GUID_WICPixelFormat32bppBGRA, { 4, 4, 1, 3, 3, DXGI_FORMAT_BC1_UNORM, WICDdsTexture2D, WICDdsAlphaModeUnknown } }, - { test_dds_dxt3, sizeof(test_dds_dxt3), 8, 16, &GUID_WICPixelFormat32bppBGRA, - { 12, 12, 1, 4, 2, DXGI_FORMAT_BC2_UNORM, WICDdsTexture2D, WICDdsAlphaModeUnknown } } + { test_dds_dxt3, sizeof(test_dds_dxt3), S_OK, 8, 16, &GUID_WICPixelFormat32bppBGRA, + { 12, 12, 1, 4, 2, DXGI_FORMAT_BC2_UNORM, WICDdsTexture2D, WICDdsAlphaModeUnknown } }, + { test_dds_bad_magic, sizeof(test_dds_bad_magic), WINCODEC_ERR_UNKNOWNIMAGEFORMAT }, + { test_dds_bad_header, sizeof(test_dds_bad_header), WINCODEC_ERR_BADHEADER }, + { test_byte, sizeof(test_byte), WINCODEC_ERR_STREAMREAD }, + { test_word, sizeof(test_word), WINCODEC_ERR_STREAMREAD }, + { test_dword, sizeof(test_dword), WINCODEC_ERR_UNKNOWNIMAGEFORMAT }, + { test_qword_a, sizeof(test_qword_a), WINCODEC_ERR_UNKNOWNIMAGEFORMAT }, + { test_qword_b, sizeof(test_qword_b), WINCODEC_ERR_STREAMREAD }, };
static IWICImagingFactory *factory = NULL; @@ -389,41 +405,6 @@ static BOOL has_extended_header(const BYTE *data)
static void test_dds_decoder_initialize(void) { - static BYTE test_dds_bad_magic[sizeof(test_dds_dxt1)]; - static BYTE test_dds_bad_header[sizeof(test_dds_dxt1)]; - static BYTE byte = 0; - static DWORD dword = 0; - static BYTE qword1[8] = { 0 }; - static BYTE qword2[8] = "DDS "; - - static struct test_data { - void *data; - UINT size; - HRESULT expected; - BOOL wine_init; - } test_data[] = { - { test_dds_dxt1 , sizeof(test_dds_dxt1), S_OK }, - { test_dds_mipmaps, sizeof(test_dds_mipmaps), S_OK }, - { test_dds_volume, sizeof(test_dds_volume), S_OK }, - { test_dds_array, sizeof(test_dds_array), S_OK }, - { test_dds_dxt3, sizeof(test_dds_dxt3), S_OK }, - { test_dds_bgr565, sizeof(test_dds_bgr565), WINCODEC_ERR_BADHEADER, TRUE }, - { test_dds_24bpp, sizeof(test_dds_24bpp), WINCODEC_ERR_BADHEADER, TRUE }, - { test_dds_32bpp_xrgb, sizeof(test_dds_32bpp_xrgb), WINCODEC_ERR_BADHEADER, TRUE }, - { test_dds_32bpp_argb, sizeof(test_dds_32bpp_argb), WINCODEC_ERR_BADHEADER, TRUE }, - { test_dds_64bpp, sizeof(test_dds_64bpp), WINCODEC_ERR_BADHEADER, TRUE }, - { test_dds_96bpp, sizeof(test_dds_96bpp), WINCODEC_ERR_BADHEADER, TRUE }, - { test_dds_128bpp, sizeof(test_dds_128bpp), WINCODEC_ERR_BADHEADER, TRUE }, - { test_dds_cube, sizeof(test_dds_cube), WINCODEC_ERR_BADHEADER, TRUE }, - { test_dds_cube_dx10, sizeof(test_dds_cube_dx10), WINCODEC_ERR_BADHEADER, TRUE }, - { test_dds_bad_magic, sizeof(test_dds_bad_magic), WINCODEC_ERR_UNKNOWNIMAGEFORMAT }, - { test_dds_bad_header, sizeof(test_dds_bad_header), WINCODEC_ERR_BADHEADER }, - { &byte, sizeof(byte), WINCODEC_ERR_STREAMREAD }, - { &dword, sizeof(dword), WINCODEC_ERR_UNKNOWNIMAGEFORMAT }, - { &qword1, sizeof(qword1), WINCODEC_ERR_UNKNOWNIMAGEFORMAT }, - { &qword2, sizeof(qword2), WINCODEC_ERR_STREAMREAD }, - }; - int i;
memcpy(test_dds_bad_magic, test_dds_dxt1, sizeof(test_dds_dxt1)); @@ -442,7 +423,7 @@ static void test_dds_decoder_initialize(void) decoder = create_decoder(); if (!decoder) goto next;
- init_decoder(decoder, stream, test_data[i].expected, i, test_data[i].wine_init); + init_decoder(decoder, stream, test_data[i].init_hr, i, test_data[i].wine_init);
next: if (decoder) IWICBitmapDecoder_Release(decoder); @@ -528,6 +509,8 @@ static void test_dds_decoder_image_parameters(void) hr = IWICDdsDecoder_GetParameters(dds_decoder, NULL); ok(hr == E_INVALIDARG, "Test %u: GetParameters got unexpected hr %#x\n", i, hr);
+ if (test_data[i].init_hr != S_OK && !test_data[i].wine_init) continue; + hr = init_decoder(decoder, stream, S_OK, -1, test_data[i].wine_init); if (hr != S_OK) { if (test_data[i].expected_parameters.Dimension == WICDdsTextureCube) { @@ -842,6 +825,8 @@ static void test_dds_decoder(void) IWICStream *stream = NULL; IWICBitmapDecoder *decoder = NULL;
+ if (test_data[i].init_hr != S_OK && !test_data[i].wine_init) continue; + stream = create_stream(test_data[i].data, test_data[i].size); if (!stream) goto next; decoder = create_decoder();