Nikolay Sivov : ole32/tests: Simplify test monikers creation helper.
Alexandre Julliard
julliard at winehq.org
Fri Sep 24 15:32:00 CDT 2021
Module: wine
Branch: master
Commit: 23390c9a358ac6bd64d72f2e526ae52f2f9880ca
URL: https://source.winehq.org/git/wine.git/?a=commit;h=23390c9a358ac6bd64d72f2e526ae52f2f9880ca
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Fri Sep 24 15:51:44 2021 +0300
ole32/tests: Simplify test monikers creation helper.
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/ole32/tests/moniker.c | 66 +++++++++++++++++++++++++---------------------
1 file changed, 36 insertions(+), 30 deletions(-)
diff --git a/dlls/ole32/tests/moniker.c b/dlls/ole32/tests/moniker.c
index 272c4e4c568..6b21a2e732e 100644
--- a/dlls/ole32/tests/moniker.c
+++ b/dlls/ole32/tests/moniker.c
@@ -127,33 +127,41 @@ static IMoniker *create_antimoniker(DWORD level)
return moniker;
}
-static HRESULT create_moniker_from_desc(const char *desc, unsigned int *eaten,
+static HRESULT create_moniker_parse_desc(const char *desc, unsigned int *eaten,
IMoniker **moniker)
{
+ unsigned int comp_len = 0;
+ WCHAR itemnameW[3] = L"Ix";
IMoniker *left, *right;
- WCHAR nameW[3];
HRESULT hr;
- desc += *eaten;
-
switch (*desc)
{
case 'I':
- nameW[0] = desc[0];
- nameW[1] = desc[1];
- nameW[2] = 0;
- *eaten += 2;
- return CreateItemMoniker(L"!", nameW, moniker);
+ itemnameW[1] = desc[1];
+ *eaten = 2;
+ return CreateItemMoniker(L"!", itemnameW, moniker);
case 'A':
- *eaten += 2;
+ *eaten = 2;
*moniker = create_antimoniker(desc[1] - '0');
return S_OK;
case 'C':
- (*eaten)++;
- hr = create_moniker_from_desc(desc, eaten, &left);
+ *eaten = 1;
+ desc++;
+
+ comp_len = 0;
+ hr = create_moniker_parse_desc(desc, &comp_len, &left);
ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
- hr = create_moniker_from_desc(desc, eaten, &right);
+
+ *eaten += comp_len;
+ desc += comp_len;
+
+ comp_len = 0;
+ hr = create_moniker_parse_desc(desc, &comp_len, &right);
ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
+
+ *eaten += comp_len;
+
hr = CreateGenericComposite(left, right, moniker);
IMoniker_Release(left);
IMoniker_Release(right);
@@ -164,6 +172,12 @@ static HRESULT create_moniker_from_desc(const char *desc, unsigned int *eaten,
}
}
+static HRESULT create_moniker_from_desc(const char *desc, IMoniker **moniker)
+{
+ unsigned int eaten = 0;
+ return create_moniker_parse_desc(desc, &eaten, moniker);
+}
+
static SIZE_T round_global_size(SIZE_T size)
{
static SIZE_T global_size_alignment = -1;
@@ -2642,8 +2656,7 @@ todo_wine
/* Simplification has to through generic composite logic,
even when resolved to non-composite, generic composite option has to be enabled. */
- eaten = 0;
- hr = create_moniker_from_desc("CA1A3", &eaten, &c);
+ hr = create_moniker_from_desc("CA1A3", &c);
ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
hr = IMoniker_ComposeWith(moniker, c, TRUE, &moniker2);
ok(hr == MK_E_NEEDGENERIC, "Unexpected hr %#x.\n", hr);
@@ -2972,7 +2985,6 @@ static void test_generic_composite_moniker(void)
IMoniker *moniker, *inverse, *moniker1, *moniker2;
IEnumMoniker *enummoniker;
IRunningObjectTable *rot;
- unsigned int eaten, i;
DWORD hash, cookie;
HRESULT hr;
IBindCtx *bindctx;
@@ -2981,6 +2993,7 @@ static void test_generic_composite_moniker(void)
IROTData *rotdata;
IMarshal *marshal;
IStream *stream;
+ unsigned int i;
FILETIME ft;
WCHAR *str;
ULONG len;
@@ -2991,16 +3004,14 @@ static void test_generic_composite_moniker(void)
for (i = 0; i < ARRAY_SIZE(simplify_tests); ++i)
{
IMoniker *left, *right, *composite = NULL;
- unsigned int moniker_type, eaten;
+ unsigned int moniker_type;
WCHAR *name;
winetest_push_context("simplify[%u]", i);
- eaten = 0;
- hr = create_moniker_from_desc(simplify_tests[i].left, &eaten, &left);
+ hr = create_moniker_from_desc(simplify_tests[i].left, &left);
ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
- eaten = 0;
- hr = create_moniker_from_desc(simplify_tests[i].right, &eaten, &right);
+ hr = create_moniker_from_desc(simplify_tests[i].right, &right);
ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
hr = CreateGenericComposite(left, right, &composite);
ok(hr == S_OK, "Failed to create a composite, hr %#x.\n", hr);
@@ -3162,12 +3173,10 @@ todo_wine
IMoniker_Release(moniker);
/* GetTimeOfLastChange() */
- eaten = 0;
- hr = create_moniker_from_desc("CI1I2", &eaten, &moniker);
+ hr = create_moniker_from_desc("CI1I2", &moniker);
ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
- eaten = 0;
- hr = create_moniker_from_desc("I1", &eaten, &moniker1);
+ hr = create_moniker_from_desc("I1", &moniker1);
ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
/* See if non-generic composition is possible */
@@ -3224,7 +3233,6 @@ static void test_pointer_moniker(void)
IStream *stream;
IROTData *rotdata;
LPOLESTR display_name;
- unsigned int eaten;
IMarshal *marshal;
LARGE_INTEGER pos;
CLSID clsid;
@@ -3417,8 +3425,7 @@ static void test_pointer_moniker(void)
even when resolved to non-composite, generic composite option has to be enabled. */
/* P + (A,A3) -> A3 */
- eaten = 0;
- hr = create_moniker_from_desc("CA1A3", &eaten, &c);
+ hr = create_moniker_from_desc("CA1A3", &c);
ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
hr = IMoniker_ComposeWith(moniker, c, TRUE, &moniker2);
ok(hr == MK_E_NEEDGENERIC, "Unexpected hr %#x.\n", hr);
@@ -3432,8 +3439,7 @@ static void test_pointer_moniker(void)
IMoniker_Release(c);
/* P + (A,I) -> I */
- eaten = 0;
- hr = create_moniker_from_desc("CA1I1", &eaten, &c);
+ hr = create_moniker_from_desc("CA1I1", &c);
ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
hr = IMoniker_ComposeWith(moniker, c, TRUE, &moniker2);
ok(hr == MK_E_NEEDGENERIC, "Unexpected hr %#x.\n", hr);
More information about the wine-cvs
mailing list