mirror of
https://github.com/wine-mirror/wine
synced 2024-07-05 17:28:47 +00:00
oleaut32/tests: Do not use VarCmp() to check results of other functions.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
This commit is contained in:
parent
406750714b
commit
bed12d8499
|
@ -6383,7 +6383,7 @@ static void test_VarAdd(void)
|
|||
static void test_VarCat(void)
|
||||
{
|
||||
LCID lcid;
|
||||
VARIANT left, right, result, expected, expected_broken;
|
||||
VARIANT left, right, result;
|
||||
CHAR orig_date_format[128];
|
||||
VARTYPE leftvt, rightvt, resultvt;
|
||||
HRESULT hres;
|
||||
|
@ -6399,7 +6399,6 @@ static void test_VarCat(void)
|
|||
VariantInit(&left);
|
||||
VariantInit(&right);
|
||||
VariantInit(&result);
|
||||
VariantInit(&expected);
|
||||
|
||||
/* Check expected types for all combinations */
|
||||
for (leftvt = 0; leftvt <= VT_BSTR_BLOB; leftvt++)
|
||||
|
@ -6530,14 +6529,12 @@ static void test_VarCat(void)
|
|||
/* Test concat strings */
|
||||
V_VT(&left) = VT_BSTR;
|
||||
V_VT(&right) = VT_BSTR;
|
||||
V_VT(&expected) = VT_BSTR;
|
||||
V_BSTR(&left) = SysAllocString(L"12");
|
||||
V_BSTR(&right) = SysAllocString(L"34");
|
||||
V_BSTR(&expected) = SysAllocString(L"1234");
|
||||
hres = VarCat(&left,&right,&result);
|
||||
ok(hres == S_OK, "VarCat failed with error 0x%08lx\n", hres);
|
||||
ok(VarCmp(&result,&expected,lcid,0) == VARCMP_EQ,
|
||||
"VarCat: VT_BSTR concat with VT_BSTR failed to return correct result\n");
|
||||
ok(V_VT(&result) == VT_BSTR, "Unexpected return type %d.\n", V_VT(&result));
|
||||
ok(!wcscmp(V_BSTR(&result), L"1234"), "Unexpected return value %s.\n", wine_dbgstr_w(V_BSTR(&result)));
|
||||
|
||||
VariantClear(&left);
|
||||
VariantClear(&right);
|
||||
|
@ -6567,54 +6564,43 @@ static void test_VarCat(void)
|
|||
VariantClear(&left);
|
||||
VariantClear(&right);
|
||||
VariantClear(&result);
|
||||
VariantClear(&expected);
|
||||
|
||||
/* Test combining boolean with number */
|
||||
V_VT(&left) = VT_INT;
|
||||
V_VT(&right) = VT_BOOL;
|
||||
V_VT(&expected) = VT_BSTR;
|
||||
V_INT(&left) = 12;
|
||||
V_BOOL(&right) = TRUE;
|
||||
V_BSTR(&expected) = SysAllocString(sz12_true);
|
||||
hres = VarCat(&left,&right,&result);
|
||||
ok(hres == S_OK, "VarCat failed with error 0x%08lx\n", hres);
|
||||
hres = VarCmp(&result, &expected, lcid, 0);
|
||||
ok(hres == VARCMP_EQ, "Expected VARCMP_EQ, got %08lx for %s, %s\n",
|
||||
hres, wine_dbgstr_variant(&result), wine_dbgstr_variant(&expected));
|
||||
ok(V_VT(&result) == VT_BSTR, "Unexpected return type %d.\n", V_VT(&result));
|
||||
ok(!wcscmp(V_BSTR(&result), sz12_true), "Unexpected return value %s.\n", wine_dbgstr_w(V_BSTR(&result)));
|
||||
|
||||
VariantClear(&left);
|
||||
VariantClear(&right);
|
||||
VariantClear(&result);
|
||||
VariantClear(&expected);
|
||||
|
||||
V_VT(&left) = VT_INT;
|
||||
V_VT(&right) = VT_BOOL;
|
||||
V_VT(&expected) = VT_BSTR;
|
||||
V_INT(&left) = 12;
|
||||
V_BOOL(&right) = FALSE;
|
||||
V_BSTR(&expected) = SysAllocString(sz12_false);
|
||||
hres = VarCat(&left,&right,&result);
|
||||
ok(hres == S_OK, "VarCat failed with error 0x%08lx\n", hres);
|
||||
hres = VarCmp(&result, &expected, lcid, 0);
|
||||
ok(hres == VARCMP_EQ, "Expected VARCMP_EQ, got %08lx for %s, %s\n",
|
||||
hres, wine_dbgstr_variant(&result), wine_dbgstr_variant(&expected));
|
||||
ok(V_VT(&result) == VT_BSTR, "Unexpected return type %d.\n", V_VT(&result));
|
||||
ok(!wcscmp(V_BSTR(&result), sz12_false), "Unexpected return value %s.\n", wine_dbgstr_w(V_BSTR(&result)));
|
||||
|
||||
VariantClear(&left);
|
||||
VariantClear(&right);
|
||||
VariantClear(&result);
|
||||
VariantClear(&expected);
|
||||
|
||||
/* Test when both expressions are numeric */
|
||||
V_VT(&left) = VT_INT;
|
||||
V_VT(&right) = VT_INT;
|
||||
V_VT(&expected) = VT_BSTR;
|
||||
V_INT(&left) = 12;
|
||||
V_INT(&right) = 34;
|
||||
V_BSTR(&expected) = SysAllocString(L"1234");
|
||||
hres = VarCat(&left,&right,&result);
|
||||
ok(hres == S_OK, "VarCat failed with error 0x%08lx\n", hres);
|
||||
ok(VarCmp(&result, &expected, lcid, 0) == VARCMP_EQ,
|
||||
"VarCat: NUMBER concat with NUMBER returned incorrect result\n");
|
||||
ok(V_VT(&result) == VT_BSTR, "Unexpected return type %d.\n", V_VT(&result));
|
||||
ok(!wcscmp(V_BSTR(&result), L"1234"), "Unexpected return value %s.\n", wine_dbgstr_w(V_BSTR(&result)));
|
||||
|
||||
VariantClear(&left);
|
||||
VariantClear(&right);
|
||||
|
@ -6627,8 +6613,8 @@ static void test_VarCat(void)
|
|||
V_BSTR(&right) = SysAllocString(L"34");
|
||||
hres = VarCat(&left,&right,&result);
|
||||
ok(hres == S_OK, "VarCat failed with error 0x%08lx\n", hres);
|
||||
ok(VarCmp(&result,&expected,lcid,0) == VARCMP_EQ,
|
||||
"VarCat: NUMBER concat with VT_BSTR, incorrect result\n");
|
||||
ok(V_VT(&result) == VT_BSTR, "Unexpected return type %d.\n", V_VT(&result));
|
||||
ok(!wcscmp(V_BSTR(&result), L"1234"), "Unexpected return value %s.\n", wine_dbgstr_w(V_BSTR(&result)));
|
||||
|
||||
VariantClear(&left);
|
||||
VariantClear(&right);
|
||||
|
@ -6640,66 +6626,49 @@ static void test_VarCat(void)
|
|||
V_INT(&right) = 34;
|
||||
hres = VarCat(&left,&right,&result);
|
||||
ok(hres == S_OK, "VarCat failed with error 0x%08lx\n", hres);
|
||||
ok(VarCmp(&result,&expected,lcid,0) == VARCMP_EQ,
|
||||
"VarCat: VT_BSTR concat with NUMBER, incorrect result\n");
|
||||
ok(V_VT(&result) == VT_BSTR, "Unexpected return type %d.\n", V_VT(&result));
|
||||
ok(!wcscmp(V_BSTR(&result), L"1234"), "Unexpected return value %s.\n", wine_dbgstr_w(V_BSTR(&result)));
|
||||
|
||||
VariantClear(&left);
|
||||
VariantClear(&right);
|
||||
VariantClear(&result);
|
||||
VariantClear(&expected);
|
||||
|
||||
/* Test concat dates with strings */
|
||||
V_VT(&left) = VT_BSTR;
|
||||
V_VT(&right) = VT_DATE;
|
||||
V_VT(&expected) = VT_BSTR;
|
||||
V_VT(&expected_broken) = VT_BSTR;
|
||||
V_BSTR(&left) = SysAllocString(L"12");
|
||||
V_DATE(&right) = 29494.0;
|
||||
V_BSTR(&expected)= SysAllocString(L"129/30/1980");
|
||||
V_BSTR(&expected_broken)= SysAllocString(L"129/30/80");
|
||||
hres = VarCat(&left,&right,&result);
|
||||
ok(hres == S_OK, "VarCat failed with error 0x%08lx\n", hres);
|
||||
ok(VarCmp(&result,&expected,lcid,0) == VARCMP_EQ ||
|
||||
broken(VarCmp(&result,&expected_broken,lcid,0) == VARCMP_EQ), /* Some W98 and NT4 (intermittent) */
|
||||
"VarCat: VT_BSTR concat with VT_DATE returned incorrect result\n");
|
||||
ok(V_VT(&result) == VT_BSTR, "Unexpected return type %d.\n", V_VT(&result));
|
||||
ok(!wcscmp(V_BSTR(&result), L"129/30/1980"), "Unexpected return value %s.\n", wine_dbgstr_w(V_BSTR(&result)));
|
||||
|
||||
VariantClear(&left);
|
||||
VariantClear(&right);
|
||||
VariantClear(&result);
|
||||
VariantClear(&expected);
|
||||
VariantClear(&expected_broken);
|
||||
|
||||
V_VT(&left) = VT_DATE;
|
||||
V_VT(&right) = VT_BSTR;
|
||||
V_VT(&expected) = VT_BSTR;
|
||||
V_VT(&expected_broken) = VT_BSTR;
|
||||
V_DATE(&left) = 29494.0;
|
||||
V_BSTR(&right) = SysAllocString(L"12");
|
||||
V_BSTR(&expected) = SysAllocString(L"9/30/198012");
|
||||
V_BSTR(&expected_broken) = SysAllocString(L"9/30/8012");
|
||||
hres = VarCat(&left,&right,&result);
|
||||
ok(hres == S_OK, "VarCat failed with error 0x%08lx\n", hres);
|
||||
ok(VarCmp(&result,&expected,lcid,0) == VARCMP_EQ ||
|
||||
broken(VarCmp(&result,&expected_broken,lcid,0) == VARCMP_EQ), /* Some W98 and NT4 (intermittent) */
|
||||
"VarCat: VT_DATE concat with VT_BSTR returned incorrect result\n");
|
||||
ok(V_VT(&result) == VT_BSTR, "Unexpected return type %d.\n", V_VT(&result));
|
||||
ok(!wcscmp(V_BSTR(&result), L"9/30/198012"), "Unexpected return value %s.\n", wine_dbgstr_w(V_BSTR(&result)));
|
||||
|
||||
VariantClear(&left);
|
||||
VariantClear(&right);
|
||||
VariantClear(&result);
|
||||
VariantClear(&expected);
|
||||
VariantClear(&expected_broken);
|
||||
|
||||
/* Test of both expressions are empty */
|
||||
V_VT(&left) = VT_BSTR;
|
||||
V_VT(&right) = VT_BSTR;
|
||||
V_VT(&expected) = VT_BSTR;
|
||||
V_BSTR(&left) = SysAllocString(L"");
|
||||
V_BSTR(&right) = SysAllocString(L"");
|
||||
V_BSTR(&expected)= SysAllocString(L"");
|
||||
hres = VarCat(&left,&right,&result);
|
||||
ok(hres == S_OK, "VarCat failed with error 0x%08lx\n", hres);
|
||||
ok(VarCmp(&result,&left,lcid,0) == VARCMP_EQ,
|
||||
"VarCat: EMPTY concat with EMPTY did not return empty VT_BSTR\n");
|
||||
ok(V_VT(&result) == VT_BSTR, "Unexpected return type %d.\n", V_VT(&result));
|
||||
ok(!wcscmp(V_BSTR(&result), L""), "Unexpected return value %s.\n", wine_dbgstr_w(V_BSTR(&result)));
|
||||
|
||||
/* Restore original date format settings */
|
||||
SetLocaleInfoA(lcid,LOCALE_SSHORTDATE,orig_date_format);
|
||||
|
@ -6707,7 +6676,6 @@ static void test_VarCat(void)
|
|||
VariantClear(&left);
|
||||
VariantClear(&right);
|
||||
VariantClear(&result);
|
||||
VariantClear(&expected);
|
||||
|
||||
/* Dispatch conversion */
|
||||
init_test_dispatch(VT_NULL, &dispatch);
|
||||
|
@ -9808,7 +9776,7 @@ START_TEST(vartest)
|
|||
test_VarEqv();
|
||||
test_VarMul();
|
||||
test_VarAdd();
|
||||
test_VarCmp(); /* Before test_VarCat() which needs VarCmp() */
|
||||
test_VarCmp();
|
||||
test_VarCat();
|
||||
test_VarAnd();
|
||||
test_VarDiv();
|
||||
|
|
Loading…
Reference in New Issue
Block a user