Wine-Devel
By thread
wine-devel@list.winehq.org
By month
Messages by month
- ----- 2026 -----
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
June 2022
- 68 participants
- 3274 messages
[PATCH 0/6] MR336: light.msstyles: Add Vista+ tab parts.
by Zhiyi Zhang (@zhiyi)
Signed-off-by: Zhiyi Zhang <zzhang(a)codeweavers.com>
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/336
June 29, 2022
Re: [PATCH 0/6] MR334: light.msstyles: Add Vista+ tab parts. - closed
by Zhiyi Zhang (@zhiyi)
This merge request was closed by Zhiyi Zhang.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/334
June 29, 2022
Re: [PATCH v6 0/5] MR310: mf: Fix several reference leaks.
by Rémi Bernon
Is there anything more I should do here, I'd like to fix these test failures before updating the other mf tests so that marvin stops spamming us.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/310#note_2917
June 29, 2022
[PATCH v3 3/3] d2d1/tests: Test value size checking for custom properties.
by Ziqing Hui
From: Ziqing Hui <zhui(a)codeweavers.com>
Signed-off-by: Ziqing Hui <zhui(a)codeweavers.com>
---
dlls/d2d1/tests/d2d1.c | 28 +++++++++++++++++++++++++---
1 file changed, 25 insertions(+), 3 deletions(-)
diff --git a/dlls/d2d1/tests/d2d1.c b/dlls/d2d1/tests/d2d1.c
index 51ed33701dc..2e31501afaf 100644
--- a/dlls/d2d1/tests/d2d1.c
+++ b/dlls/d2d1/tests/d2d1.c
@@ -10682,7 +10682,7 @@ static HRESULT STDMETHODCALLTYPE effect_impl_set_integer(IUnknown *iface, const
{
struct effect_impl *effect_impl = impl_from_ID2D1EffectImpl((ID2D1EffectImpl *)iface);
- if (!data || data_size != sizeof(effect_impl->integer))
+ if (!data)
return E_INVALIDARG;
effect_impl->integer = *((UINT *)data);
@@ -10695,7 +10695,7 @@ static HRESULT STDMETHODCALLTYPE effect_impl_get_integer(const IUnknown *iface,
{
struct effect_impl *effect_impl = impl_from_ID2D1EffectImpl((ID2D1EffectImpl *)iface);
- if (!data || data_size != sizeof(effect_impl->integer))
+ if (!data)
return E_INVALIDARG;
*((UINT *)data) = effect_impl->integer;
@@ -10710,7 +10710,7 @@ static HRESULT STDMETHODCALLTYPE effect_impl_get_context(const IUnknown *iface,
{
struct effect_impl *effect_impl = impl_from_ID2D1EffectImpl((ID2D1EffectImpl *)iface);
- if (!data || data_size != sizeof(effect_impl->effect_context))
+ if (!data)
return E_INVALIDARG;
*((ID2D1EffectContext **)data) = effect_impl->effect_context;
@@ -11184,6 +11184,12 @@ static void test_effect_properties(BOOL d3d11)
ok(index == 1, "Got unexpected index %u.\n", index);
effect_context = (ID2D1EffectContext *)0xdeadbeef;
+ hr = ID2D1Effect_GetValueByName(effect,
+ L"Context", D2D1_PROPERTY_TYPE_IUNKNOWN, (BYTE *)&effect_context, sizeof(effect_context) - 1);
+ ok(hr == E_INVALIDARG, "Got unexpected hr %#lx.\n", hr);
+ hr = ID2D1Effect_GetValueByName(effect,
+ L"Context", D2D1_PROPERTY_TYPE_IUNKNOWN, (BYTE *)&effect_context, sizeof(effect_context) + 1);
+ ok(hr == E_INVALIDARG, "Got unexpected hr %#lx.\n", hr);
hr = ID2D1Effect_GetValueByName(effect,
L"Context", D2D1_PROPERTY_TYPE_IUNKNOWN, (BYTE *)&effect_context, sizeof(effect_context));
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
@@ -11191,6 +11197,10 @@ static void test_effect_properties(BOOL d3d11)
"Got unexpected effect context %p.\n", effect_context);
effect_context = (ID2D1EffectContext *)0xdeadbeef;
+ hr = ID2D1Effect_GetValue(effect, 0, D2D1_PROPERTY_TYPE_IUNKNOWN, (BYTE *)&effect_context, sizeof(effect_context) - 1);
+ ok(hr == E_INVALIDARG, "Got unexpected hr %#lx.\n", hr);
+ hr = ID2D1Effect_GetValue(effect, 0, D2D1_PROPERTY_TYPE_IUNKNOWN, (BYTE *)&effect_context, sizeof(effect_context) + 1);
+ ok(hr == E_INVALIDARG, "Got unexpected hr %#lx.\n", hr);
hr = ID2D1Effect_GetValue(effect, 0, D2D1_PROPERTY_TYPE_IUNKNOWN, (BYTE *)&effect_context, sizeof(effect_context));
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
ok(effect_context != NULL && effect_context != (ID2D1EffectContext *)0xdeadbeef,
@@ -11200,16 +11210,28 @@ static void test_effect_properties(BOOL d3d11)
ok(hr == E_INVALIDARG, "Got unexpected hr %#lx.\n", hr);
integer = 0xdeadbeef;
+ hr = ID2D1Effect_GetValueByName(effect, L"Integer", D2D1_PROPERTY_TYPE_UINT32, (BYTE *)&integer, sizeof(integer) - 1);
+ ok(hr == E_INVALIDARG, "Got unexpected hr %#lx.\n", hr);
+ hr = ID2D1Effect_GetValueByName(effect, L"Integer", D2D1_PROPERTY_TYPE_UINT32, (BYTE *)&integer, sizeof(integer) + 1);
+ ok(hr == E_INVALIDARG, "Got unexpected hr %#lx.\n", hr);
hr = ID2D1Effect_GetValueByName(effect, L"Integer", D2D1_PROPERTY_TYPE_UINT32, (BYTE *)&integer, sizeof(integer));
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
ok(integer == 10, "Got unexpected integer %u.", integer);
integer = 0xdeadbeef;
+ hr = ID2D1Effect_GetValue(effect, 1, D2D1_PROPERTY_TYPE_UINT32, (BYTE *)&integer, sizeof(integer) - 1);
+ ok(hr == E_INVALIDARG, "Got unexpected hr %#lx.\n", hr);
+ hr = ID2D1Effect_GetValue(effect, 1, D2D1_PROPERTY_TYPE_UINT32, (BYTE *)&integer, sizeof(integer) + 1);
+ ok(hr == E_INVALIDARG, "Got unexpected hr %#lx.\n", hr);
hr = ID2D1Effect_GetValue(effect, 1, D2D1_PROPERTY_TYPE_UINT32, (BYTE *)&integer, sizeof(integer));
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
ok(integer == 10, "Got unexpected integer %u.", integer);
integer = 20;
+ hr = ID2D1Effect_SetValue(effect, 1, D2D1_PROPERTY_TYPE_UINT32, (BYTE *)&integer, sizeof(integer) - 1);
+ ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
+ hr = ID2D1Effect_SetValue(effect, 1, D2D1_PROPERTY_TYPE_UINT32, (BYTE *)&integer, sizeof(integer) + 1);
+ ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
hr = ID2D1Effect_SetValue(effect, 1, D2D1_PROPERTY_TYPE_UINT32, (BYTE *)&integer, sizeof(integer));
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
integer = 0xdeadbeef;
--
GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/330
June 29, 2022
[PATCH v3 2/3] d2d1/tests: Add tests for GetPropertyCount().
by Ziqing Hui
From: Ziqing Hui <zhui(a)codeweavers.com>
Signed-off-by: Ziqing Hui <zhui(a)codeweavers.com>
---
dlls/d2d1/tests/d2d1.c | 20 ++++++++++++++++----
1 file changed, 16 insertions(+), 4 deletions(-)
diff --git a/dlls/d2d1/tests/d2d1.c b/dlls/d2d1/tests/d2d1.c
index d31cd9cf1a3..51ed33701dc 100644
--- a/dlls/d2d1/tests/d2d1.c
+++ b/dlls/d2d1/tests/d2d1.c
@@ -11011,7 +11011,7 @@ static void test_effect_context(BOOL d3d11)
static void test_effect_properties(BOOL d3d11)
{
- UINT32 i, min_inputs, max_inputs, integer, index;
+ UINT32 i, min_inputs, max_inputs, integer, index, property_count;
ID2D1EffectContext *effect_context;
D2D1_BUFFER_PRECISION precision;
struct d2d1_test_context ctx;
@@ -11175,6 +11175,9 @@ static void test_effect_properties(BOOL d3d11)
hr = ID2D1DeviceContext_CreateEffect(ctx.context, &CLSID_TestEffect, &effect);
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
+ property_count = ID2D1Effect_GetPropertyCount(effect);
+ ok(property_count == 2, "Got unexpected property count %u.\n", property_count);
+
index = ID2D1Effect_GetPropertyIndex(effect, L"Context");
ok(index == 0, "Got unexpected index %u.\n", index);
index = ID2D1Effect_GetPropertyIndex(effect, L"Integer");
@@ -11257,12 +11260,12 @@ static void test_effect_properties(BOOL d3d11)
static void test_effect_2d_affine(BOOL d3d11)
{
+ unsigned int i, x, y, w, h, property_count;
D2D1_MATRIX_3X2_F rotate, scale, skew;
D2D1_BITMAP_PROPERTIES1 bitmap_desc;
D2D_RECT_F output_bounds = {0};
struct d2d1_test_context ctx;
ID2D1DeviceContext *context;
- unsigned int i, x, y, w, h;
D2D1_SIZE_U input_size;
ID2D1Factory1 *factory;
D2D1_POINT_2F offset;
@@ -11341,6 +11344,9 @@ static void test_effect_2d_affine(BOOL d3d11)
check_system_properties(effect, TRUE);
+ property_count = ID2D1Effect_GetPropertyCount(effect);
+ todo_wine ok(property_count == 4, "Got unexpected property count %u.\n", property_count);
+
for (i = 0; i < ARRAY_SIZE(effect_2d_affine_tests); ++i)
{
const struct effect_2d_affine_test *test = &effect_2d_affine_tests[i];
@@ -11406,6 +11412,7 @@ static void test_effect_2d_affine(BOOL d3d11)
static void test_effect_crop(BOOL d3d11)
{
D2D1_BITMAP_PROPERTIES1 bitmap_desc;
+ unsigned int i, property_count;
struct d2d1_test_context ctx;
ID2D1DeviceContext *context;
D2D_RECT_F output_bounds;
@@ -11415,7 +11422,6 @@ static void test_effect_crop(BOOL d3d11)
DWORD image[16 * 16];
ID2D1Effect *effect;
ID2D1Image *output;
- unsigned int i;
HRESULT hr;
const struct crop_effect_test
@@ -11453,6 +11459,9 @@ static void test_effect_crop(BOOL d3d11)
check_system_properties(effect, TRUE);
+ property_count = ID2D1Effect_GetPropertyCount(effect);
+ todo_wine ok(property_count == 2, "Got unexpected property count %u.\n", property_count);
+
for (i = 0; i < ARRAY_SIZE(crop_effect_tests); ++i)
{
const struct crop_effect_test *test = &crop_effect_tests[i];
@@ -11497,6 +11506,7 @@ static void test_effect_grayscale(BOOL d3d11)
{
DWORD colour, expected_colour, luminance;
D2D1_BITMAP_PROPERTIES1 bitmap_desc;
+ unsigned int i, property_count;
struct d2d1_test_context ctx;
struct resource_readback rb;
ID2D1DeviceContext *context;
@@ -11505,7 +11515,6 @@ static void test_effect_grayscale(BOOL d3d11)
ID2D1Bitmap1 *bitmap;
ID2D1Effect *effect;
ID2D1Image *output;
- unsigned int i;
HRESULT hr;
const DWORD test_pixels[] = {0xffffffff, 0x12345678, 0x89abcdef, 0x77777777, 0xdeadbeef};
@@ -11528,6 +11537,9 @@ static void test_effect_grayscale(BOOL d3d11)
check_system_properties(effect, TRUE);
+ property_count = ID2D1Effect_GetPropertyCount(effect);
+ ok(property_count == 0, "Got unexpected property count %u.\n", property_count);
+
for (i = 0; i < ARRAY_SIZE(test_pixels); ++i)
{
DWORD pixel = test_pixels[i];
--
GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/330
June 29, 2022
[PATCH v3 1/3] d2d1/tests: Add tests for system property name, type, value size.
by Ziqing Hui
From: Ziqing Hui <zhui(a)codeweavers.com>
Signed-off-by: Ziqing Hui <zhui(a)codeweavers.com>
---
dlls/d2d1/tests/d2d1.c | 97 +++++++++++++++++++++++++++++++++++++++++-
1 file changed, 95 insertions(+), 2 deletions(-)
diff --git a/dlls/d2d1/tests/d2d1.c b/dlls/d2d1/tests/d2d1.c
index 6ba4d8cec59..d31cd9cf1a3 100644
--- a/dlls/d2d1/tests/d2d1.c
+++ b/dlls/d2d1/tests/d2d1.c
@@ -10314,7 +10314,85 @@ static void test_mt_factory(BOOL d3d11)
ID2D1Factory_Release(factory);
}
-static void test_effect(BOOL d3d11)
+#define check_system_properties(effect, is_builtin) check_system_properties_(__LINE__, effect, is_builtin)
+static void check_system_properties_(unsigned int line, ID2D1Effect *effect, BOOL is_builtin)
+{
+ UINT i, value_size, str_size;
+ WCHAR name[32], buffer[256];
+ D2D1_PROPERTY_TYPE type;
+ HRESULT hr;
+
+ const struct system_property_test
+ {
+ UINT32 index;
+ const WCHAR *name;
+ D2D1_PROPERTY_TYPE type;
+ UINT32 value_size;
+ }
+ system_property_tests[] =
+ {
+ {D2D1_PROPERTY_CLSID, L"CLSID", D2D1_PROPERTY_TYPE_CLSID, sizeof(CLSID)},
+ {D2D1_PROPERTY_DISPLAYNAME, L"DisplayName", D2D1_PROPERTY_TYPE_STRING, 0},
+ {D2D1_PROPERTY_AUTHOR, L"Author", D2D1_PROPERTY_TYPE_STRING, 0},
+ {D2D1_PROPERTY_CATEGORY, L"Category", D2D1_PROPERTY_TYPE_STRING, 0},
+ {D2D1_PROPERTY_DESCRIPTION, L"Description", D2D1_PROPERTY_TYPE_STRING, 0},
+ {D2D1_PROPERTY_INPUTS, L"Inputs", D2D1_PROPERTY_TYPE_ARRAY, sizeof(UINT32)},
+ {D2D1_PROPERTY_CACHED, L"Cached", D2D1_PROPERTY_TYPE_BOOL, sizeof(BOOL)},
+ {D2D1_PROPERTY_PRECISION, L"Precision", D2D1_PROPERTY_TYPE_ENUM, sizeof(UINT32)},
+ {D2D1_PROPERTY_MIN_INPUTS, L"MinInputs", D2D1_PROPERTY_TYPE_UINT32, sizeof(UINT32)},
+ {D2D1_PROPERTY_MAX_INPUTS, L"MaxInputs", D2D1_PROPERTY_TYPE_UINT32, sizeof(UINT32)},
+ };
+
+ hr = ID2D1Effect_GetPropertyName(effect, 0xdeadbeef, name, sizeof(name));
+ ok_(__FILE__, line)(hr == D2DERR_INVALID_PROPERTY, "GetPropertyName() got unexpected hr %#lx for 0xdeadbeef.\n", hr);
+ type = ID2D1Effect_GetType(effect, 0xdeadbeef);
+ ok_(__FILE__, line)(type == D2D1_PROPERTY_TYPE_UNKNOWN, "Got unexpected property type %#x for 0xdeadbeef.\n", type);
+ value_size = ID2D1Effect_GetValueSize(effect, 0xdeadbeef);
+ ok_(__FILE__, line)(value_size == 0, "Got unexpected value size %u for 0xdeadbeef.\n", value_size);
+
+ for (i = 0; i < ARRAY_SIZE(system_property_tests); ++i)
+ {
+ const struct system_property_test *test = &system_property_tests[i];
+ winetest_push_context("Property %u", i);
+
+ name[0] = 0;
+ hr = ID2D1Effect_GetPropertyName(effect, test->index, name, sizeof(name));
+ todo_wine_if(test->type == D2D1_PROPERTY_TYPE_ARRAY || (is_builtin && test->type == D2D1_PROPERTY_TYPE_STRING))
+ {
+ ok_(__FILE__, line)(hr == S_OK, "Failed to get property name, hr %#lx\n", hr);
+ ok_(__FILE__, line)(!wcscmp(name, test->name), "Got unexpected property name %s, expected %s.\n",
+ debugstr_w(name), debugstr_w(test->name));
+ }
+
+ type = D2D1_PROPERTY_TYPE_UNKNOWN;
+ type = ID2D1Effect_GetType(effect, test->index);
+ todo_wine_if(test->type == D2D1_PROPERTY_TYPE_ARRAY || (is_builtin && test->type == D2D1_PROPERTY_TYPE_STRING))
+ ok_(__FILE__, line)(type == test->type, "Got unexpected property type %#x, expected %#x.\n",
+ type, test->type);
+
+ value_size = 0;
+ value_size = ID2D1Effect_GetValueSize(effect, test->index);
+ if (test->value_size != 0)
+ {
+ todo_wine_if(test->type == D2D1_PROPERTY_TYPE_ARRAY)
+ ok_(__FILE__, line)(value_size == test->value_size, "Got unexpected value size %u, expected %u.\n",
+ value_size, test->value_size);
+ }
+ else if (test->type == D2D1_PROPERTY_TYPE_STRING)
+ {
+ hr = ID2D1Effect_GetValue(effect, test->index, D2D1_PROPERTY_TYPE_STRING, (BYTE *)buffer, sizeof(buffer));
+ todo_wine_if(is_builtin)
+ ok_(__FILE__, line)(hr == S_OK, "Failed to get value, hr %#lx.\n", hr);
+ str_size = (wcslen((WCHAR *)buffer) + 1) * sizeof(WCHAR);
+ todo_wine_if(is_builtin || buffer[0] == 0)
+ ok_(__FILE__, line)(value_size == str_size, "Got unexpected value size %u, expected %u.\n",
+ value_size, str_size);
+ }
+ winetest_pop_context();
+ }
+}
+
+static void test_builtin_effect(BOOL d3d11)
{
unsigned int i, j, min_inputs, max_inputs, str_size, input_count;
D2D1_BITMAP_PROPERTIES bitmap_desc;
@@ -10376,6 +10454,7 @@ static void test_effect(BOOL d3d11)
hr = ID2D1DeviceContext_CreateEffect(context, test->clsid, &effect);
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
+ /* Test output image pointer */
hr = ID2D1Effect_QueryInterface(effect, &IID_ID2D1Image, (void **)&image_a);
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
ID2D1Effect_GetOutput(effect, &image_b);
@@ -10383,6 +10462,7 @@ static void test_effect(BOOL d3d11)
ID2D1Image_Release(image_b);
ID2D1Image_Release(image_a);
+ /* Test GetValue() */
hr = ID2D1Effect_GetValue(effect, 0xdeadbeef, D2D1_PROPERTY_TYPE_CLSID, (BYTE *)&clsid, sizeof(clsid));
ok(hr == D2DERR_INVALID_PROPERTY, "Got unexpected hr %#lx.\n", hr);
@@ -10439,10 +10519,12 @@ static void test_effect(BOOL d3d11)
ok(max_inputs == test->max_inputs, "Got unexpected max inputs %u, expected %u.\n",
max_inputs, test->max_inputs);
+ /* Test default input count */
input_count = ID2D1Effect_GetInputCount(effect);
ok(input_count == test->default_input_count, "Got unexpected input count %u, expected %u.\n",
input_count, test->default_input_count);
+ /* Test SetInputCount() */
input_count = (test->max_inputs < 16 ? test->max_inputs : 16);
for (j = 0; j < input_count + 4; ++j)
{
@@ -10455,6 +10537,7 @@ static void test_effect(BOOL d3d11)
winetest_pop_context();
}
+ /* Test GetInput() before any input is set */
input_count = ID2D1Effect_GetInputCount(effect);
for (j = 0; j < input_count + 4; ++j)
{
@@ -10464,6 +10547,7 @@ static void test_effect(BOOL d3d11)
winetest_pop_context();
}
+ /* Test GetInput() after an input is set */
set_size_u(&size, 1, 1);
bitmap_desc.pixelFormat.format = DXGI_FORMAT_B8G8R8A8_UNORM;
bitmap_desc.pixelFormat.alphaMode = D2D1_ALPHA_MODE_IGNORE;
@@ -10490,6 +10574,7 @@ static void test_effect(BOOL d3d11)
winetest_pop_context();
}
+ /* Test setting inputs with out-of-bounds index */
for (j = input_count; j < input_count + 4; ++j)
{
winetest_push_context("Input %u", j);
@@ -10990,6 +11075,8 @@ static void test_effect_properties(BOOL d3d11)
hr = ID2D1DeviceContext_CreateEffect(ctx.context, &CLSID_TestEffect, &effect);
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
+ check_system_properties(effect, FALSE);
+
hr = ID2D1Effect_GetValue(effect, D2D1_PROPERTY_CLSID,
D2D1_PROPERTY_TYPE_CLSID, (BYTE *)&clsid, sizeof(clsid));
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
@@ -11252,6 +11339,8 @@ static void test_effect_2d_affine(BOOL d3d11)
hr = ID2D1DeviceContext_CreateEffect(context, &CLSID_D2D12DAffineTransform, &effect);
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
+ check_system_properties(effect, TRUE);
+
for (i = 0; i < ARRAY_SIZE(effect_2d_affine_tests); ++i)
{
const struct effect_2d_affine_test *test = &effect_2d_affine_tests[i];
@@ -11362,6 +11451,8 @@ static void test_effect_crop(BOOL d3d11)
hr = ID2D1DeviceContext_CreateEffect(context, &CLSID_D2D1Crop, &effect);
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
+ check_system_properties(effect, TRUE);
+
for (i = 0; i < ARRAY_SIZE(crop_effect_tests); ++i)
{
const struct crop_effect_test *test = &crop_effect_tests[i];
@@ -11435,6 +11526,8 @@ static void test_effect_grayscale(BOOL d3d11)
hr = ID2D1DeviceContext_CreateEffect(context, &CLSID_D2D1Grayscale, &effect);
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
+ check_system_properties(effect, TRUE);
+
for (i = 0; i < ARRAY_SIZE(test_pixels); ++i)
{
DWORD pixel = test_pixels[i];
@@ -12288,7 +12381,7 @@ START_TEST(d2d1)
queue_test(test_effect_register);
queue_test(test_effect_context);
queue_test(test_effect_properties);
- queue_test(test_effect);
+ queue_test(test_builtin_effect);
queue_test(test_effect_2d_affine);
queue_test(test_effect_crop);
queue_test(test_effect_grayscale);
--
GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/330
June 29, 2022
[PATCH v3 0/3] MR330: Tests for properties.
by Ziqing Hui (@zhui)
Signed-off-by: Ziqing Hui <zhui(a)codeweavers.com>
--
v3: d2d1/tests: Test value size checking for custom properties.
d2d1/tests: Add tests for GetPropertyCount().
https://gitlab.winehq.org/wine/wine/-/merge_requests/330
June 29, 2022
Re: [PATCH v2 3/3] d2d1/tests: Test value size checking for custom properties.
by Marvin
Hi,
It looks like your patch introduced the new failures shown below.
Please investigate and fix them before resubmitting your patch.
If they are not new, fixing them anyway would help a lot. Otherwise
please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how
to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at:
https://testbot.winehq.org/JobDetails.pl?Key=117830
Your paranoid android.
=== w7u_2qxl (32 bit report) ===
d2d1:
d2d1.c:11370: Test failed: Got unexpected property count 4.
d2d1.c:11370: Test failed: Got unexpected property count 4.
=== w7u_adm (32 bit report) ===
d2d1:
d2d1.c:11370: Test failed: Got unexpected property count 4.
d2d1.c:11370: Test failed: Got unexpected property count 4.
=== w7u_el (32 bit report) ===
d2d1:
d2d1.c:11370: Test failed: Got unexpected property count 4.
d2d1.c:11370: Test failed: Got unexpected property count 4.
=== w8 (32 bit report) ===
d2d1:
d2d1.c:11370: Test failed: Got unexpected property count 4.
d2d1.c:11370: Test failed: Got unexpected property count 4.
=== w8adm (32 bit report) ===
d2d1:
d2d1.c:11370: Test failed: Got unexpected property count 4.
d2d1.c:11370: Test failed: Got unexpected property count 4.
=== w864 (32 bit report) ===
d2d1:
d2d1.c:11370: Test failed: Got unexpected property count 4.
d2d1.c:11370: Test failed: Got unexpected property count 4.
=== w1064v1507 (32 bit report) ===
d2d1:
d2d1.c:11370: Test failed: Got unexpected property count 4.
d2d1.c:11370: Test failed: Got unexpected property count 4.
=== w1064v1809 (32 bit report) ===
d2d1:
d2d1.c:11370: Test failed: Got unexpected property count 4.
d2d1.c:11370: Test failed: Got unexpected property count 4.
=== w1064 (32 bit report) ===
d2d1:
d2d1.c:11370: Test failed: Got unexpected property count 4.
d2d1.c:11370: Test failed: Got unexpected property count 4.
=== w1064_tsign (32 bit report) ===
d2d1:
d2d1.c:11370: Test failed: Got unexpected property count 4.
d2d1.c:11370: Test failed: Got unexpected property count 4.
=== w10pro64 (32 bit report) ===
d2d1:
d2d1.c:11370: Test failed: Got unexpected property count 4.
d2d1.c:11370: Test failed: Got unexpected property count 4.
=== w864 (64 bit report) ===
d2d1:
d2d1.c:11370: Test failed: Got unexpected property count 4.
d2d1.c:11370: Test failed: Got unexpected property count 4.
=== w1064v1507 (64 bit report) ===
d2d1:
d2d1.c:11370: Test failed: Got unexpected property count 4.
d2d1.c:11370: Test failed: Got unexpected property count 4.
=== w1064v1809 (64 bit report) ===
d2d1:
d2d1.c:11370: Test failed: Got unexpected property count 4.
d2d1.c:11370: Test failed: Got unexpected property count 4.
=== w1064 (64 bit report) ===
d2d1:
d2d1.c:11370: Test failed: Got unexpected property count 4.
d2d1.c:11370: Test failed: Got unexpected property count 4.
=== w1064_2qxl (64 bit report) ===
d2d1:
d2d1.c:11370: Test failed: Got unexpected property count 4.
d2d1.c:11370: Test failed: Got unexpected property count 4.
=== w1064_adm (64 bit report) ===
d2d1:
d2d1.c:11370: Test failed: Got unexpected property count 4.
d2d1.c:11370: Test failed: Got unexpected property count 4.
=== w1064_tsign (64 bit report) ===
d2d1:
d2d1.c:11370: Test failed: Got unexpected property count 4.
d2d1.c:11370: Test failed: Got unexpected property count 4.
=== w10pro64 (64 bit report) ===
d2d1:
d2d1.c:11370: Test failed: Got unexpected property count 4.
d2d1.c:11370: Test failed: Got unexpected property count 4.
=== w10pro64_en_AE_u8 (64 bit report) ===
d2d1:
d2d1.c:11370: Test failed: Got unexpected property count 4.
d2d1.c:11370: Test failed: Got unexpected property count 4.
=== w10pro64_ar (64 bit report) ===
d2d1:
d2d1.c:11370: Test failed: Got unexpected property count 4.
d2d1.c:11370: Test failed: Got unexpected property count 4.
=== w10pro64_ja (64 bit report) ===
d2d1:
d2d1.c:11370: Test failed: Got unexpected property count 4.
d2d1.c:11370: Test failed: Got unexpected property count 4.
=== w10pro64_zh_CN (64 bit report) ===
d2d1:
d2d1.c:11370: Test failed: Got unexpected property count 4.
d2d1.c:11370: Test failed: Got unexpected property count 4.
June 29, 2022
Re: [PATCH v2 2/3] d2d1/tests: Add tests for GetPropertyCount().
by Marvin
Hi,
It looks like your patch introduced the new failures shown below.
Please investigate and fix them before resubmitting your patch.
If they are not new, fixing them anyway would help a lot. Otherwise
please ask for the known failures list to be updated.
The tests also ran into some preexisting test failures. If you know how
to fix them that would be helpful. See the TestBot job for the details:
The full results can be found at:
https://testbot.winehq.org/JobDetails.pl?Key=117829
Your paranoid android.
=== w7u_2qxl (32 bit report) ===
d2d1:
d2d1.c:11348: Test failed: Got unexpected property count 4.
d2d1.c:11348: Test failed: Got unexpected property count 4.
=== w7u_adm (32 bit report) ===
d2d1:
d2d1.c:11348: Test failed: Got unexpected property count 4.
d2d1.c:11348: Test failed: Got unexpected property count 4.
=== w7u_el (32 bit report) ===
d2d1:
d2d1.c:11348: Test failed: Got unexpected property count 4.
d2d1.c:11348: Test failed: Got unexpected property count 4.
=== w8 (32 bit report) ===
d2d1:
d2d1.c:11348: Test failed: Got unexpected property count 4.
d2d1.c:11348: Test failed: Got unexpected property count 4.
=== w8adm (32 bit report) ===
d2d1:
d2d1.c:11348: Test failed: Got unexpected property count 4.
d2d1.c:11348: Test failed: Got unexpected property count 4.
=== w864 (32 bit report) ===
d2d1:
d2d1.c:11348: Test failed: Got unexpected property count 4.
d2d1.c:11348: Test failed: Got unexpected property count 4.
=== w1064v1507 (32 bit report) ===
d2d1:
d2d1.c:11348: Test failed: Got unexpected property count 4.
d2d1.c:11348: Test failed: Got unexpected property count 4.
=== w1064v1809 (32 bit report) ===
d2d1:
d2d1.c:11348: Test failed: Got unexpected property count 4.
d2d1.c:11348: Test failed: Got unexpected property count 4.
=== w1064 (32 bit report) ===
d2d1:
d2d1.c:11348: Test failed: Got unexpected property count 4.
d2d1.c:11348: Test failed: Got unexpected property count 4.
=== w1064_tsign (32 bit report) ===
d2d1:
d2d1.c:11348: Test failed: Got unexpected property count 4.
d2d1.c:11348: Test failed: Got unexpected property count 4.
=== w10pro64 (32 bit report) ===
d2d1:
d2d1.c:11348: Test failed: Got unexpected property count 4.
d2d1.c:11348: Test failed: Got unexpected property count 4.
=== w864 (64 bit report) ===
d2d1:
d2d1.c:11348: Test failed: Got unexpected property count 4.
d2d1.c:11348: Test failed: Got unexpected property count 4.
=== w1064v1507 (64 bit report) ===
d2d1:
d2d1.c:11348: Test failed: Got unexpected property count 4.
d2d1.c:11348: Test failed: Got unexpected property count 4.
=== w1064v1809 (64 bit report) ===
d2d1:
d2d1.c:11348: Test failed: Got unexpected property count 4.
d2d1.c:11348: Test failed: Got unexpected property count 4.
=== w1064 (64 bit report) ===
d2d1:
d2d1.c:11348: Test failed: Got unexpected property count 4.
d2d1.c:11348: Test failed: Got unexpected property count 4.
=== w1064_2qxl (64 bit report) ===
d2d1:
d2d1.c:11348: Test failed: Got unexpected property count 4.
d2d1.c:11348: Test failed: Got unexpected property count 4.
=== w1064_adm (64 bit report) ===
d2d1:
d2d1.c:11348: Test failed: Got unexpected property count 4.
d2d1.c:11348: Test failed: Got unexpected property count 4.
=== w1064_tsign (64 bit report) ===
d2d1:
d2d1.c:11348: Test failed: Got unexpected property count 4.
d2d1.c:11348: Test failed: Got unexpected property count 4.
=== w10pro64 (64 bit report) ===
d2d1:
d2d1.c:11348: Test failed: Got unexpected property count 4.
d2d1.c:11348: Test failed: Got unexpected property count 4.
=== w10pro64_en_AE_u8 (64 bit report) ===
d2d1:
d2d1.c:11348: Test failed: Got unexpected property count 4.
d2d1.c:11348: Test failed: Got unexpected property count 4.
=== w10pro64_ar (64 bit report) ===
d2d1:
d2d1.c:11348: Test failed: Got unexpected property count 4.
d2d1.c:11348: Test failed: Got unexpected property count 4.
=== w10pro64_ja (64 bit report) ===
d2d1:
d2d1.c:11348: Test failed: Got unexpected property count 4.
d2d1.c:11348: Test failed: Got unexpected property count 4.
=== w10pro64_zh_CN (64 bit report) ===
d2d1:
d2d1.c:11348: Test failed: Got unexpected property count 4.
d2d1.c:11348: Test failed: Got unexpected property count 4.
June 29, 2022
[PATCH v2 3/3] d2d1/tests: Test value size checking for custom properties.
by Ziqing Hui
From: Ziqing Hui <zhui(a)codeweavers.com>
Signed-off-by: Ziqing Hui <zhui(a)codeweavers.com>
---
dlls/d2d1/tests/d2d1.c | 28 +++++++++++++++++++++++++---
1 file changed, 25 insertions(+), 3 deletions(-)
diff --git a/dlls/d2d1/tests/d2d1.c b/dlls/d2d1/tests/d2d1.c
index ef3cd245ef6..454ff9b26b4 100644
--- a/dlls/d2d1/tests/d2d1.c
+++ b/dlls/d2d1/tests/d2d1.c
@@ -10682,7 +10682,7 @@ static HRESULT STDMETHODCALLTYPE effect_impl_set_integer(IUnknown *iface, const
{
struct effect_impl *effect_impl = impl_from_ID2D1EffectImpl((ID2D1EffectImpl *)iface);
- if (!data || data_size != sizeof(effect_impl->integer))
+ if (!data)
return E_INVALIDARG;
effect_impl->integer = *((UINT *)data);
@@ -10695,7 +10695,7 @@ static HRESULT STDMETHODCALLTYPE effect_impl_get_integer(const IUnknown *iface,
{
struct effect_impl *effect_impl = impl_from_ID2D1EffectImpl((ID2D1EffectImpl *)iface);
- if (!data || data_size != sizeof(effect_impl->integer))
+ if (!data)
return E_INVALIDARG;
*((UINT *)data) = effect_impl->integer;
@@ -10710,7 +10710,7 @@ static HRESULT STDMETHODCALLTYPE effect_impl_get_context(const IUnknown *iface,
{
struct effect_impl *effect_impl = impl_from_ID2D1EffectImpl((ID2D1EffectImpl *)iface);
- if (!data || data_size != sizeof(effect_impl->effect_context))
+ if (!data)
return E_INVALIDARG;
*((ID2D1EffectContext **)data) = effect_impl->effect_context;
@@ -11184,6 +11184,12 @@ static void test_effect_properties(BOOL d3d11)
ok(index == 1, "Got unexpected index %u.\n", index);
effect_context = (ID2D1EffectContext *)0xdeadbeef;
+ hr = ID2D1Effect_GetValueByName(effect,
+ L"Context", D2D1_PROPERTY_TYPE_IUNKNOWN, (BYTE *)&effect_context, sizeof(effect_context) - 1);
+ ok(hr == E_INVALIDARG, "Got unexpected hr %#lx.\n", hr);
+ hr = ID2D1Effect_GetValueByName(effect,
+ L"Context", D2D1_PROPERTY_TYPE_IUNKNOWN, (BYTE *)&effect_context, sizeof(effect_context) + 1);
+ ok(hr == E_INVALIDARG, "Got unexpected hr %#lx.\n", hr);
hr = ID2D1Effect_GetValueByName(effect,
L"Context", D2D1_PROPERTY_TYPE_IUNKNOWN, (BYTE *)&effect_context, sizeof(effect_context));
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
@@ -11191,6 +11197,10 @@ static void test_effect_properties(BOOL d3d11)
"Got unexpected effect context %p.\n", effect_context);
effect_context = (ID2D1EffectContext *)0xdeadbeef;
+ hr = ID2D1Effect_GetValue(effect, 0, D2D1_PROPERTY_TYPE_IUNKNOWN, (BYTE *)&effect_context, sizeof(effect_context) - 1);
+ ok(hr == E_INVALIDARG, "Got unexpected hr %#lx.\n", hr);
+ hr = ID2D1Effect_GetValue(effect, 0, D2D1_PROPERTY_TYPE_IUNKNOWN, (BYTE *)&effect_context, sizeof(effect_context) + 1);
+ ok(hr == E_INVALIDARG, "Got unexpected hr %#lx.\n", hr);
hr = ID2D1Effect_GetValue(effect, 0, D2D1_PROPERTY_TYPE_IUNKNOWN, (BYTE *)&effect_context, sizeof(effect_context));
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
ok(effect_context != NULL && effect_context != (ID2D1EffectContext *)0xdeadbeef,
@@ -11200,16 +11210,28 @@ static void test_effect_properties(BOOL d3d11)
ok(hr == E_INVALIDARG, "Got unexpected hr %#lx.\n", hr);
integer = 0xdeadbeef;
+ hr = ID2D1Effect_GetValueByName(effect, L"Integer", D2D1_PROPERTY_TYPE_UINT32, (BYTE *)&integer, sizeof(integer) - 1);
+ ok(hr == E_INVALIDARG, "Got unexpected hr %#lx.\n", hr);
+ hr = ID2D1Effect_GetValueByName(effect, L"Integer", D2D1_PROPERTY_TYPE_UINT32, (BYTE *)&integer, sizeof(integer) + 1);
+ ok(hr == E_INVALIDARG, "Got unexpected hr %#lx.\n", hr);
hr = ID2D1Effect_GetValueByName(effect, L"Integer", D2D1_PROPERTY_TYPE_UINT32, (BYTE *)&integer, sizeof(integer));
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
ok(integer == 10, "Got unexpected integer %u.", integer);
integer = 0xdeadbeef;
+ hr = ID2D1Effect_GetValue(effect, 1, D2D1_PROPERTY_TYPE_UINT32, (BYTE *)&integer, sizeof(integer) - 1);
+ ok(hr == E_INVALIDARG, "Got unexpected hr %#lx.\n", hr);
+ hr = ID2D1Effect_GetValue(effect, 1, D2D1_PROPERTY_TYPE_UINT32, (BYTE *)&integer, sizeof(integer) + 1);
+ ok(hr == E_INVALIDARG, "Got unexpected hr %#lx.\n", hr);
hr = ID2D1Effect_GetValue(effect, 1, D2D1_PROPERTY_TYPE_UINT32, (BYTE *)&integer, sizeof(integer));
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
ok(integer == 10, "Got unexpected integer %u.", integer);
integer = 20;
+ hr = ID2D1Effect_SetValue(effect, 1, D2D1_PROPERTY_TYPE_UINT32, (BYTE *)&integer, sizeof(integer) - 1);
+ ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
+ hr = ID2D1Effect_SetValue(effect, 1, D2D1_PROPERTY_TYPE_UINT32, (BYTE *)&integer, sizeof(integer) + 1);
+ ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
hr = ID2D1Effect_SetValue(effect, 1, D2D1_PROPERTY_TYPE_UINT32, (BYTE *)&integer, sizeof(integer));
ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr);
integer = 0xdeadbeef;
--
GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/330
June 29, 2022