diff --git a/dlls/oleaut32/tests/vartest.c b/dlls/oleaut32/tests/vartest.c index c3842bf..2fde14a 100644 --- a/dlls/oleaut32/tests/vartest.c +++ b/dlls/oleaut32/tests/vartest.c @@ -2149,11 +2149,19 @@ static void test_VarSub(void) hres = pVarSub(&left, &right, &result); - ok(hres == expectedhres && V_VT(&result) == resvt, - "VarSub: %d|0x%X, %d|0x%X: Expected failure 0x%X, " - "got 0x%X, expected vt %d got vt %d\n", - leftvt, ExtraFlags[i], rightvt, ExtraFlags[i], - expectedhres, hres, resvt, V_VT(&result)); + if (leftvt == VT_RECORD && rightvt == VT_I8) + ok((hres == expectedhres || hres == DISP_E_BADVARTYPE) && + V_VT(&result) == resvt, + "VarSub: %d|0x%X, %d|0x%X: Expected failure 0x%X " + "or 0x%X, got 0x%X, expected vt %d got vt %d\n", + leftvt, ExtraFlags[i], rightvt, ExtraFlags[i], + expectedhres, DISP_E_BADVARTYPE, hres, resvt, V_VT(&result)); + else + ok(hres == expectedhres && V_VT(&result) == resvt, + "VarSub: %d|0x%X, %d|0x%X: Expected failure 0x%X, " + "got 0x%X, expected vt %d got vt %d\n", + leftvt, ExtraFlags[i], rightvt, ExtraFlags[i], + expectedhres, hres, resvt, V_VT(&result)); } } } -- 1.5.4.3