Commit 7cdc50fe authored by Jon Griffiths's avatar Jon Griffiths Committed by Alexandre Julliard

oleaut32/tests: Fix memory leaks reported by valgrind.

parent 992e3edc
...@@ -298,6 +298,7 @@ static void test_var_call1( int line, HRESULT (WINAPI *func)(LPVARIANT,LPVARIANT ...@@ -298,6 +298,7 @@ static void test_var_call1( int line, HRESULT (WINAPI *func)(LPVARIANT,LPVARIANT
"got %s expected %s\n", variantstr(&result), variantstr(expected) ); "got %s expected %s\n", variantstr(&result), variantstr(expected) );
ok_(__FILE__,line)( is_expected_variant( arg, &old_arg ), "Modified argument %s / %s\n", ok_(__FILE__,line)( is_expected_variant( arg, &old_arg ), "Modified argument %s / %s\n",
variantstr(&old_arg), variantstr(arg)); variantstr(&old_arg), variantstr(arg));
VariantClear( &result );
} }
static void test_var_call2( int line, HRESULT (WINAPI *func)(LPVARIANT,LPVARIANT,LPVARIANT), static void test_var_call2( int line, HRESULT (WINAPI *func)(LPVARIANT,LPVARIANT,LPVARIANT),
...@@ -317,6 +318,7 @@ static void test_var_call2( int line, HRESULT (WINAPI *func)(LPVARIANT,LPVARIANT ...@@ -317,6 +318,7 @@ static void test_var_call2( int line, HRESULT (WINAPI *func)(LPVARIANT,LPVARIANT
variantstr(&old_left), variantstr(left)); variantstr(&old_left), variantstr(left));
ok_(__FILE__,line)( is_expected_variant( right, &old_right ), "Modified right argument %s / %s\n", ok_(__FILE__,line)( is_expected_variant( right, &old_right ), "Modified right argument %s / %s\n",
variantstr(&old_right), variantstr(right)); variantstr(&old_right), variantstr(right));
VariantClear( &result );
} }
...@@ -621,9 +623,12 @@ static void test_VariantCopy(void) ...@@ -621,9 +623,12 @@ static void test_VariantCopy(void)
"Copy(bad src): expected 0x%X, got 0x%X for src vt %d|0x%X\n", "Copy(bad src): expected 0x%X, got 0x%X for src vt %d|0x%X\n",
hExpected, hres, vt, ExtraFlags[i]); hExpected, hres, vt, ExtraFlags[i]);
if (hres == S_OK) if (hres == S_OK)
{
ok(V_VT(&vDst) == (vt|ExtraFlags[i]), ok(V_VT(&vDst) == (vt|ExtraFlags[i]),
"Copy(bad src): expected vt = %d, got %d\n", "Copy(bad src): expected vt = %d, got %d\n",
vt | ExtraFlags[i], V_VT(&vDst)); vt | ExtraFlags[i], V_VT(&vDst));
VariantClear(&vDst);
}
} }
} }
...@@ -642,6 +647,7 @@ static void test_VariantCopy(void) ...@@ -642,6 +647,7 @@ static void test_VariantCopy(void)
{ {
ok(*V_BSTR(&vDst) == 0, "Copy(NULL BSTR): result not empty\n"); ok(*V_BSTR(&vDst) == 0, "Copy(NULL BSTR): result not empty\n");
} }
VariantClear(&vDst);
} }
} }
...@@ -813,6 +819,7 @@ static void test_VariantCopyInd(void) ...@@ -813,6 +819,7 @@ static void test_VariantCopyInd(void)
vt, ExtraFlags[i] & ~VT_BYREF, vt, ExtraFlags[i] & ~VT_BYREF,
V_VT(&vDst) & VT_TYPEMASK, V_VT(&vDst) & ~VT_TYPEMASK); V_VT(&vDst) & VT_TYPEMASK, V_VT(&vDst) & ~VT_TYPEMASK);
} }
VariantClear(&vDst);
} }
} }
} }
...@@ -2726,6 +2733,9 @@ static void test_VarMod(void) ...@@ -2726,6 +2733,9 @@ static void test_VarMod(void)
hres = pVarMod(&v1,&v2,&vDst); hres = pVarMod(&v1,&v2,&vDst);
ok(hres == DISP_E_BADVARTYPE && V_VT(&vDst) == VT_EMPTY, ok(hres == DISP_E_BADVARTYPE && V_VT(&vDst) == VT_EMPTY,
"VarMod: expected 0x%x,%d, got 0x%X,%d\n", DISP_E_BADVARTYPE, VT_EMPTY, hres, V_VT(&vDst)); "VarMod: expected 0x%x,%d, got 0x%X,%d\n", DISP_E_BADVARTYPE, VT_EMPTY, hres, V_VT(&vDst));
SysFreeString(strNum0);
SysFreeString(strNum1);
} }
static HRESULT (WINAPI *pVarFix)(LPVARIANT,LPVARIANT); static HRESULT (WINAPI *pVarFix)(LPVARIANT,LPVARIANT);
...@@ -3381,9 +3391,11 @@ static void test_VarXor(void) ...@@ -3381,9 +3391,11 @@ static void test_VarXor(void)
VARXOR(EMPTY,0,R8,1,I4,1); VARXOR(EMPTY,0,R8,1,I4,1);
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VARXOR(EMPTY,0,BSTR,rbstr,I2,0); VARXOR(EMPTY,0,BSTR,rbstr,I2,0);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VARXOR(EMPTY,0,BSTR,rbstr,I2,-1); VARXOR(EMPTY,0,BSTR,rbstr,I2,-1);
VARXORCY(EMPTY,0,10000,I4,1); VARXORCY(EMPTY,0,10000,I4,1);
SysFreeString(rbstr);
/* NULL OR 0 = NULL. NULL OR n = n */ /* NULL OR 0 = NULL. NULL OR n = n */
VARXOR(NULL,0,NULL,0,NULL,0); VARXOR(NULL,0,NULL,0,NULL,0);
...@@ -3419,8 +3431,10 @@ static void test_VarXor(void) ...@@ -3419,8 +3431,10 @@ static void test_VarXor(void)
VARXOR(NULL,0,R8,1,NULL,0); VARXOR(NULL,0,R8,1,NULL,0);
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VARXOR(NULL,0,BSTR,rbstr,NULL,0); VARXOR(NULL,0,BSTR,rbstr,NULL,0);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VARXOR(NULL,0,BSTR,rbstr,NULL,0); VARXOR(NULL,0,BSTR,rbstr,NULL,0);
SysFreeString(rbstr);
VARXORCY(NULL,0,10000,NULL,0); VARXORCY(NULL,0,10000,NULL,0);
VARXORCY(NULL,0,0,NULL,0); VARXORCY(NULL,0,0,NULL,0);
...@@ -3477,9 +3491,11 @@ static void test_VarXor(void) ...@@ -3477,9 +3491,11 @@ static void test_VarXor(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VARXOR(BOOL,VARIANT_FALSE,BSTR,rbstr,BOOL,VARIANT_FALSE); VARXOR(BOOL,VARIANT_FALSE,BSTR,rbstr,BOOL,VARIANT_FALSE);
VARXOR(BOOL,VARIANT_TRUE,BSTR,rbstr,BOOL,VARIANT_TRUE); VARXOR(BOOL,VARIANT_TRUE,BSTR,rbstr,BOOL,VARIANT_TRUE);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VARXOR(BOOL,VARIANT_FALSE,BSTR,rbstr,BOOL,VARIANT_TRUE); VARXOR(BOOL,VARIANT_FALSE,BSTR,rbstr,BOOL,VARIANT_TRUE);
VARXOR(BOOL,VARIANT_TRUE,BSTR,rbstr,BOOL,VARIANT_FALSE); VARXOR(BOOL,VARIANT_TRUE,BSTR,rbstr,BOOL,VARIANT_FALSE);
SysFreeString(rbstr);
VARXORCY(BOOL,VARIANT_TRUE,10000,I4,-2); VARXORCY(BOOL,VARIANT_TRUE,10000,I4,-2);
VARXORCY(BOOL,VARIANT_TRUE,0,I4,-1); VARXORCY(BOOL,VARIANT_TRUE,0,I4,-1);
VARXORCY(BOOL,VARIANT_FALSE,0,I4,0); VARXORCY(BOOL,VARIANT_FALSE,0,I4,0);
...@@ -3528,9 +3544,11 @@ static void test_VarXor(void) ...@@ -3528,9 +3544,11 @@ static void test_VarXor(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VARXOR(I1,0,BSTR,rbstr,I4,0); VARXOR(I1,0,BSTR,rbstr,I4,0);
VARXOR(I1,-1,BSTR,rbstr,I4,-1); VARXOR(I1,-1,BSTR,rbstr,I4,-1);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VARXOR(I1,0,BSTR,rbstr,I4,-1); VARXOR(I1,0,BSTR,rbstr,I4,-1);
VARXOR(I1,-1,BSTR,rbstr,I4,0); VARXOR(I1,-1,BSTR,rbstr,I4,0);
SysFreeString(rbstr);
VARXORCY(I1,-1,10000,I4,-2); VARXORCY(I1,-1,10000,I4,-2);
VARXORCY(I1,-1,0,I4,-1); VARXORCY(I1,-1,0,I4,-1);
VARXORCY(I1,0,0,I4,0); VARXORCY(I1,0,0,I4,0);
...@@ -3576,9 +3594,11 @@ static void test_VarXor(void) ...@@ -3576,9 +3594,11 @@ static void test_VarXor(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VARXOR(UI1,0,BSTR,rbstr,I2,0); VARXOR(UI1,0,BSTR,rbstr,I2,0);
VARXOR(UI1,255,BSTR,rbstr,I2,255); VARXOR(UI1,255,BSTR,rbstr,I2,255);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VARXOR(UI1,0,BSTR,rbstr,I2,-1); VARXOR(UI1,0,BSTR,rbstr,I2,-1);
VARXOR(UI1,255,BSTR,rbstr,I2,-256); VARXOR(UI1,255,BSTR,rbstr,I2,-256);
SysFreeString(rbstr);
VARXORCY(UI1,255,10000,I4,254); VARXORCY(UI1,255,10000,I4,254);
VARXORCY(UI1,255,0,I4,255); VARXORCY(UI1,255,0,I4,255);
VARXORCY(UI1,0,0,I4,0); VARXORCY(UI1,0,0,I4,0);
...@@ -3621,9 +3641,11 @@ static void test_VarXor(void) ...@@ -3621,9 +3641,11 @@ static void test_VarXor(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VARXOR(I2,0,BSTR,rbstr,I2,0); VARXOR(I2,0,BSTR,rbstr,I2,0);
VARXOR(I2,-1,BSTR,rbstr,I2,-1); VARXOR(I2,-1,BSTR,rbstr,I2,-1);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VARXOR(I2,0,BSTR,rbstr,I2,-1); VARXOR(I2,0,BSTR,rbstr,I2,-1);
VARXOR(I2,-1,BSTR,rbstr,I2,0); VARXOR(I2,-1,BSTR,rbstr,I2,0);
SysFreeString(rbstr);
VARXORCY(I2,-1,10000,I4,-2); VARXORCY(I2,-1,10000,I4,-2);
VARXORCY(I2,-1,0,I4,-1); VARXORCY(I2,-1,0,I4,-1);
VARXORCY(I2,0,0,I4,0); VARXORCY(I2,0,0,I4,0);
...@@ -3663,9 +3685,11 @@ static void test_VarXor(void) ...@@ -3663,9 +3685,11 @@ static void test_VarXor(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VARXOR(UI2,0,BSTR,rbstr,I4,0); VARXOR(UI2,0,BSTR,rbstr,I4,0);
VARXOR(UI2,65535,BSTR,rbstr,I4,65535); VARXOR(UI2,65535,BSTR,rbstr,I4,65535);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VARXOR(UI2,0,BSTR,rbstr,I4,-1); VARXOR(UI2,0,BSTR,rbstr,I4,-1);
VARXOR(UI2,65535,BSTR,rbstr,I4,-65536); VARXOR(UI2,65535,BSTR,rbstr,I4,-65536);
SysFreeString(rbstr);
VARXORCY(UI2,65535,10000,I4,65534); VARXORCY(UI2,65535,10000,I4,65534);
VARXORCY(UI2,65535,0,I4,65535); VARXORCY(UI2,65535,0,I4,65535);
VARXORCY(UI2,0,0,I4,0); VARXORCY(UI2,0,0,I4,0);
...@@ -3702,9 +3726,11 @@ static void test_VarXor(void) ...@@ -3702,9 +3726,11 @@ static void test_VarXor(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VARXOR(I4,0,BSTR,rbstr,I4,0); VARXOR(I4,0,BSTR,rbstr,I4,0);
VARXOR(I4,-1,BSTR,rbstr,I4,-1); VARXOR(I4,-1,BSTR,rbstr,I4,-1);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VARXOR(I4,0,BSTR,rbstr,I4,-1); VARXOR(I4,0,BSTR,rbstr,I4,-1);
VARXOR(I4,-1,BSTR,rbstr,I4,0); VARXOR(I4,-1,BSTR,rbstr,I4,0);
SysFreeString(rbstr);
VARXORCY(I4,-1,10000,I4,-2); VARXORCY(I4,-1,10000,I4,-2);
VARXORCY(I4,-1,0,I4,-1); VARXORCY(I4,-1,0,I4,-1);
VARXORCY(I4,0,0,I4,0); VARXORCY(I4,0,0,I4,0);
...@@ -3738,9 +3764,11 @@ static void test_VarXor(void) ...@@ -3738,9 +3764,11 @@ static void test_VarXor(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VARXOR(UI4,0,BSTR,rbstr,I4,0); VARXOR(UI4,0,BSTR,rbstr,I4,0);
VARXOR(UI4,0xffffffff,BSTR,rbstr,I4,-1); VARXOR(UI4,0xffffffff,BSTR,rbstr,I4,-1);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VARXOR(UI4,0,BSTR,rbstr,I4,-1); VARXOR(UI4,0,BSTR,rbstr,I4,-1);
VARXOR(UI4,0xffffffff,BSTR,rbstr,I4,0); VARXOR(UI4,0xffffffff,BSTR,rbstr,I4,0);
SysFreeString(rbstr);
VARXORCY(UI4,0xffffffff,10000,I4,-2); VARXORCY(UI4,0xffffffff,10000,I4,-2);
VARXORCY(UI4,0xffffffff,0,I4,-1); VARXORCY(UI4,0xffffffff,0,I4,-1);
VARXORCY(UI4,0,0,I4,0); VARXORCY(UI4,0,0,I4,0);
...@@ -3771,9 +3799,11 @@ static void test_VarXor(void) ...@@ -3771,9 +3799,11 @@ static void test_VarXor(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VARXOR(R4,0,BSTR,rbstr,I4,0); VARXOR(R4,0,BSTR,rbstr,I4,0);
VARXOR(R4,-1,BSTR,rbstr,I4,-1); VARXOR(R4,-1,BSTR,rbstr,I4,-1);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VARXOR(R4,0,BSTR,rbstr,I4,-1); VARXOR(R4,0,BSTR,rbstr,I4,-1);
VARXOR(R4,-1,BSTR,rbstr,I4,0); VARXOR(R4,-1,BSTR,rbstr,I4,0);
SysFreeString(rbstr);
VARXORCY(R4,-1,10000,I4,-2); VARXORCY(R4,-1,10000,I4,-2);
VARXORCY(R4,-1,0,I4,-1); VARXORCY(R4,-1,0,I4,-1);
VARXORCY(R4,0,0,I4,0); VARXORCY(R4,0,0,I4,0);
...@@ -3801,9 +3831,11 @@ static void test_VarXor(void) ...@@ -3801,9 +3831,11 @@ static void test_VarXor(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VARXOR(R8,0,BSTR,rbstr,I4,0); VARXOR(R8,0,BSTR,rbstr,I4,0);
VARXOR(R8,-1,BSTR,rbstr,I4,-1); VARXOR(R8,-1,BSTR,rbstr,I4,-1);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VARXOR(R8,0,BSTR,rbstr,I4,-1); VARXOR(R8,0,BSTR,rbstr,I4,-1);
VARXOR(R8,-1,BSTR,rbstr,I4,0); VARXOR(R8,-1,BSTR,rbstr,I4,0);
SysFreeString(rbstr);
VARXORCY(R8,-1,10000,I4,-2); VARXORCY(R8,-1,10000,I4,-2);
VARXORCY(R8,-1,0,I4,-1); VARXORCY(R8,-1,0,I4,-1);
VARXORCY(R8,0,0,I4,0); VARXORCY(R8,0,0,I4,0);
...@@ -3828,9 +3860,11 @@ static void test_VarXor(void) ...@@ -3828,9 +3860,11 @@ static void test_VarXor(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VARXOR(DATE,0,BSTR,rbstr,I4,0); VARXOR(DATE,0,BSTR,rbstr,I4,0);
VARXOR(DATE,-1,BSTR,rbstr,I4,-1); VARXOR(DATE,-1,BSTR,rbstr,I4,-1);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VARXOR(DATE,0,BSTR,rbstr,I4,-1); VARXOR(DATE,0,BSTR,rbstr,I4,-1);
VARXOR(DATE,-1,BSTR,rbstr,I4,0); VARXOR(DATE,-1,BSTR,rbstr,I4,0);
SysFreeString(rbstr);
VARXORCY(DATE,-1,10000,I4,-2); VARXORCY(DATE,-1,10000,I4,-2);
VARXORCY(DATE,-1,0,I4,-1); VARXORCY(DATE,-1,0,I4,-1);
VARXORCY(DATE,0,0,I4,0); VARXORCY(DATE,0,0,I4,0);
...@@ -3847,9 +3881,11 @@ static void test_VarXor(void) ...@@ -3847,9 +3881,11 @@ static void test_VarXor(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VARXOR(I8,0,BSTR,rbstr,I8,0); VARXOR(I8,0,BSTR,rbstr,I8,0);
VARXOR(I8,-1,BSTR,rbstr,I8,-1); VARXOR(I8,-1,BSTR,rbstr,I8,-1);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VARXOR(I8,0,BSTR,rbstr,I8,-1); VARXOR(I8,0,BSTR,rbstr,I8,-1);
VARXOR(I8,-1,BSTR,rbstr,I8,0); VARXOR(I8,-1,BSTR,rbstr,I8,0);
SysFreeString(rbstr);
VARXORCY(I8,-1,10000,I8,-2); VARXORCY(I8,-1,10000,I8,-2);
VARXORCY(I8,-1,0,I8,-1); VARXORCY(I8,-1,0,I8,-1);
VARXORCY(I8,0,0,I8,0); VARXORCY(I8,0,0,I8,0);
...@@ -3866,9 +3902,11 @@ static void test_VarXor(void) ...@@ -3866,9 +3902,11 @@ static void test_VarXor(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VARXOR(UI8,0,BSTR,rbstr,I4,0); VARXOR(UI8,0,BSTR,rbstr,I4,0);
VARXOR(UI8,0xffff,BSTR,rbstr,I4,0xffff); VARXOR(UI8,0xffff,BSTR,rbstr,I4,0xffff);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VARXOR(UI8,0,BSTR,rbstr,I4,-1); VARXOR(UI8,0,BSTR,rbstr,I4,-1);
VARXOR(UI8,0xffff,BSTR,rbstr,I4,-65536); VARXOR(UI8,0xffff,BSTR,rbstr,I4,-65536);
SysFreeString(rbstr);
VARXORCY(UI8,0xffff,10000,I4,65534); VARXORCY(UI8,0xffff,10000,I4,65534);
VARXORCY(UI8,0xffff,0,I4,0xffff); VARXORCY(UI8,0xffff,0,I4,0xffff);
VARXORCY(UI8,0,0,I4,0); VARXORCY(UI8,0,0,I4,0);
...@@ -3883,9 +3921,11 @@ static void test_VarXor(void) ...@@ -3883,9 +3921,11 @@ static void test_VarXor(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VARXOR(INT,0,BSTR,rbstr,I4,0); VARXOR(INT,0,BSTR,rbstr,I4,0);
VARXOR(INT,-1,BSTR,rbstr,I4,-1); VARXOR(INT,-1,BSTR,rbstr,I4,-1);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VARXOR(INT,0,BSTR,rbstr,I4,-1); VARXOR(INT,0,BSTR,rbstr,I4,-1);
VARXOR(INT,-1,BSTR,rbstr,I4,0); VARXOR(INT,-1,BSTR,rbstr,I4,0);
SysFreeString(rbstr);
VARXORCY(INT,-1,10000,I4,-2); VARXORCY(INT,-1,10000,I4,-2);
VARXORCY(INT,-1,0,I4,-1); VARXORCY(INT,-1,0,I4,-1);
VARXORCY(INT,0,0,I4,0); VARXORCY(INT,0,0,I4,0);
...@@ -3896,9 +3936,11 @@ static void test_VarXor(void) ...@@ -3896,9 +3936,11 @@ static void test_VarXor(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VARXOR(UINT,0,BSTR,rbstr,I4,0); VARXOR(UINT,0,BSTR,rbstr,I4,0);
VARXOR(UINT,0xffff,BSTR,rbstr,I4,0xffff); VARXOR(UINT,0xffff,BSTR,rbstr,I4,0xffff);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VARXOR(UINT,0,BSTR,rbstr,I4,-1); VARXOR(UINT,0,BSTR,rbstr,I4,-1);
VARXOR(UINT,0xffff,BSTR,rbstr,I4,-65536); VARXOR(UINT,0xffff,BSTR,rbstr,I4,-65536);
SysFreeString(rbstr);
VARXORCY(UINT,0xffff,10000,I4,65534); VARXORCY(UINT,0xffff,10000,I4,65534);
VARXORCY(UINT,0xffff,0,I4,0xffff); VARXORCY(UINT,0xffff,0,I4,0xffff);
VARXORCY(UINT,0,0,I4,0); VARXORCY(UINT,0,0,I4,0);
...@@ -3906,13 +3948,18 @@ static void test_VarXor(void) ...@@ -3906,13 +3948,18 @@ static void test_VarXor(void)
lbstr = SysAllocString(szFalse); lbstr = SysAllocString(szFalse);
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VARXOR(BSTR,lbstr,BSTR,rbstr,BOOL,0); VARXOR(BSTR,lbstr,BSTR,rbstr,BOOL,0);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VARXOR(BSTR,lbstr,BSTR,rbstr,BOOL,VARIANT_TRUE); VARXOR(BSTR,lbstr,BSTR,rbstr,BOOL,VARIANT_TRUE);
SysFreeString(lbstr);
lbstr = SysAllocString(szTrue); lbstr = SysAllocString(szTrue);
VARXOR(BSTR,lbstr,BSTR,rbstr,BOOL,VARIANT_FALSE); VARXOR(BSTR,lbstr,BSTR,rbstr,BOOL,VARIANT_FALSE);
VARXORCY(BSTR,lbstr,10000,I4,-2); VARXORCY(BSTR,lbstr,10000,I4,-2);
SysFreeString(lbstr);
lbstr = SysAllocString(szFalse); lbstr = SysAllocString(szFalse);
VARXORCY(BSTR,lbstr,10000,I4,1); VARXORCY(BSTR,lbstr,10000,I4,1);
SysFreeString(lbstr);
SysFreeString(rbstr);
} }
static HRESULT (WINAPI *pVarOr)(LPVARIANT,LPVARIANT,LPVARIANT); static HRESULT (WINAPI *pVarOr)(LPVARIANT,LPVARIANT,LPVARIANT);
...@@ -4080,8 +4127,10 @@ static void test_VarOr(void) ...@@ -4080,8 +4127,10 @@ static void test_VarOr(void)
VAROR(EMPTY,0,R8,1,I4,1); VAROR(EMPTY,0,R8,1,I4,1);
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VAROR(EMPTY,0,BSTR,rbstr,I2,0); VAROR(EMPTY,0,BSTR,rbstr,I2,0);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VAROR(EMPTY,0,BSTR,rbstr,I2,-1); VAROR(EMPTY,0,BSTR,rbstr,I2,-1);
SysFreeString(rbstr);
VARORCY(EMPTY,0,10000,I4,1); VARORCY(EMPTY,0,10000,I4,1);
/* NULL OR 0 = NULL. NULL OR n = n */ /* NULL OR 0 = NULL. NULL OR n = n */
...@@ -4118,8 +4167,10 @@ static void test_VarOr(void) ...@@ -4118,8 +4167,10 @@ static void test_VarOr(void)
VAROR(NULL,0,R8,1,I4,1); VAROR(NULL,0,R8,1,I4,1);
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VAROR(NULL,0,BSTR,rbstr,NULL,0); VAROR(NULL,0,BSTR,rbstr,NULL,0);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VAROR(NULL,0,BSTR,rbstr,BOOL,VARIANT_TRUE); VAROR(NULL,0,BSTR,rbstr,BOOL,VARIANT_TRUE);
SysFreeString(rbstr);
VARORCY(NULL,0,10000,I4,1); VARORCY(NULL,0,10000,I4,1);
VARORCY(NULL,0,0,NULL,0); VARORCY(NULL,0,0,NULL,0);
...@@ -4176,9 +4227,11 @@ static void test_VarOr(void) ...@@ -4176,9 +4227,11 @@ static void test_VarOr(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VAROR(BOOL,VARIANT_FALSE,BSTR,rbstr,BOOL,VARIANT_FALSE); VAROR(BOOL,VARIANT_FALSE,BSTR,rbstr,BOOL,VARIANT_FALSE);
VAROR(BOOL,VARIANT_TRUE,BSTR,rbstr,BOOL,VARIANT_TRUE); VAROR(BOOL,VARIANT_TRUE,BSTR,rbstr,BOOL,VARIANT_TRUE);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VAROR(BOOL,VARIANT_FALSE,BSTR,rbstr,BOOL,VARIANT_TRUE); VAROR(BOOL,VARIANT_FALSE,BSTR,rbstr,BOOL,VARIANT_TRUE);
VAROR(BOOL,VARIANT_TRUE,BSTR,rbstr,BOOL,VARIANT_TRUE); VAROR(BOOL,VARIANT_TRUE,BSTR,rbstr,BOOL,VARIANT_TRUE);
SysFreeString(rbstr);
VARORCY(BOOL,VARIANT_TRUE,10000,I4,-1); VARORCY(BOOL,VARIANT_TRUE,10000,I4,-1);
VARORCY(BOOL,VARIANT_TRUE,0,I4,-1); VARORCY(BOOL,VARIANT_TRUE,0,I4,-1);
VARORCY(BOOL,VARIANT_FALSE,0,I4,0); VARORCY(BOOL,VARIANT_FALSE,0,I4,0);
...@@ -4227,9 +4280,11 @@ static void test_VarOr(void) ...@@ -4227,9 +4280,11 @@ static void test_VarOr(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VAROR(I1,0,BSTR,rbstr,I4,0); VAROR(I1,0,BSTR,rbstr,I4,0);
VAROR(I1,-1,BSTR,rbstr,I4,-1); VAROR(I1,-1,BSTR,rbstr,I4,-1);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VAROR(I1,0,BSTR,rbstr,I4,-1); VAROR(I1,0,BSTR,rbstr,I4,-1);
VAROR(I1,-1,BSTR,rbstr,I4,-1); VAROR(I1,-1,BSTR,rbstr,I4,-1);
SysFreeString(rbstr);
VARORCY(I1,-1,10000,I4,-1); VARORCY(I1,-1,10000,I4,-1);
VARORCY(I1,-1,0,I4,-1); VARORCY(I1,-1,0,I4,-1);
VARORCY(I1,0,0,I4,0); VARORCY(I1,0,0,I4,0);
...@@ -4275,9 +4330,11 @@ static void test_VarOr(void) ...@@ -4275,9 +4330,11 @@ static void test_VarOr(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VAROR(UI1,0,BSTR,rbstr,I2,0); VAROR(UI1,0,BSTR,rbstr,I2,0);
VAROR(UI1,255,BSTR,rbstr,I2,255); VAROR(UI1,255,BSTR,rbstr,I2,255);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VAROR(UI1,0,BSTR,rbstr,I2,-1); VAROR(UI1,0,BSTR,rbstr,I2,-1);
VAROR(UI1,255,BSTR,rbstr,I2,-1); VAROR(UI1,255,BSTR,rbstr,I2,-1);
SysFreeString(rbstr);
VARORCY(UI1,255,10000,I4,255); VARORCY(UI1,255,10000,I4,255);
VARORCY(UI1,255,0,I4,255); VARORCY(UI1,255,0,I4,255);
VARORCY(UI1,0,0,I4,0); VARORCY(UI1,0,0,I4,0);
...@@ -4320,9 +4377,11 @@ static void test_VarOr(void) ...@@ -4320,9 +4377,11 @@ static void test_VarOr(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VAROR(I2,0,BSTR,rbstr,I2,0); VAROR(I2,0,BSTR,rbstr,I2,0);
VAROR(I2,-1,BSTR,rbstr,I2,-1); VAROR(I2,-1,BSTR,rbstr,I2,-1);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VAROR(I2,0,BSTR,rbstr,I2,-1); VAROR(I2,0,BSTR,rbstr,I2,-1);
VAROR(I2,-1,BSTR,rbstr,I2,-1); VAROR(I2,-1,BSTR,rbstr,I2,-1);
SysFreeString(rbstr);
VARORCY(I2,-1,10000,I4,-1); VARORCY(I2,-1,10000,I4,-1);
VARORCY(I2,-1,0,I4,-1); VARORCY(I2,-1,0,I4,-1);
VARORCY(I2,0,0,I4,0); VARORCY(I2,0,0,I4,0);
...@@ -4362,9 +4421,11 @@ static void test_VarOr(void) ...@@ -4362,9 +4421,11 @@ static void test_VarOr(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VAROR(UI2,0,BSTR,rbstr,I4,0); VAROR(UI2,0,BSTR,rbstr,I4,0);
VAROR(UI2,65535,BSTR,rbstr,I4,65535); VAROR(UI2,65535,BSTR,rbstr,I4,65535);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VAROR(UI2,0,BSTR,rbstr,I4,-1); VAROR(UI2,0,BSTR,rbstr,I4,-1);
VAROR(UI2,65535,BSTR,rbstr,I4,-1); VAROR(UI2,65535,BSTR,rbstr,I4,-1);
SysFreeString(rbstr);
VARORCY(UI2,65535,10000,I4,65535); VARORCY(UI2,65535,10000,I4,65535);
VARORCY(UI2,65535,0,I4,65535); VARORCY(UI2,65535,0,I4,65535);
VARORCY(UI2,0,0,I4,0); VARORCY(UI2,0,0,I4,0);
...@@ -4401,9 +4462,11 @@ static void test_VarOr(void) ...@@ -4401,9 +4462,11 @@ static void test_VarOr(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VAROR(I4,0,BSTR,rbstr,I4,0); VAROR(I4,0,BSTR,rbstr,I4,0);
VAROR(I4,-1,BSTR,rbstr,I4,-1); VAROR(I4,-1,BSTR,rbstr,I4,-1);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VAROR(I4,0,BSTR,rbstr,I4,-1); VAROR(I4,0,BSTR,rbstr,I4,-1);
VAROR(I4,-1,BSTR,rbstr,I4,-1); VAROR(I4,-1,BSTR,rbstr,I4,-1);
SysFreeString(rbstr);
VARORCY(I4,-1,10000,I4,-1); VARORCY(I4,-1,10000,I4,-1);
VARORCY(I4,-1,0,I4,-1); VARORCY(I4,-1,0,I4,-1);
VARORCY(I4,0,0,I4,0); VARORCY(I4,0,0,I4,0);
...@@ -4437,9 +4500,11 @@ static void test_VarOr(void) ...@@ -4437,9 +4500,11 @@ static void test_VarOr(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VAROR(UI4,0,BSTR,rbstr,I4,0); VAROR(UI4,0,BSTR,rbstr,I4,0);
VAROR(UI4,0xffffffff,BSTR,rbstr,I4,-1); VAROR(UI4,0xffffffff,BSTR,rbstr,I4,-1);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VAROR(UI4,0,BSTR,rbstr,I4,-1); VAROR(UI4,0,BSTR,rbstr,I4,-1);
VAROR(UI4,0xffffffff,BSTR,rbstr,I4,-1); VAROR(UI4,0xffffffff,BSTR,rbstr,I4,-1);
SysFreeString(rbstr);
VARORCY(UI4,0xffffffff,10000,I4,-1); VARORCY(UI4,0xffffffff,10000,I4,-1);
VARORCY(UI4,0xffffffff,0,I4,-1); VARORCY(UI4,0xffffffff,0,I4,-1);
VARORCY(UI4,0,0,I4,0); VARORCY(UI4,0,0,I4,0);
...@@ -4470,9 +4535,11 @@ static void test_VarOr(void) ...@@ -4470,9 +4535,11 @@ static void test_VarOr(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VAROR(R4,0,BSTR,rbstr,I4,0); VAROR(R4,0,BSTR,rbstr,I4,0);
VAROR(R4,-1,BSTR,rbstr,I4,-1); VAROR(R4,-1,BSTR,rbstr,I4,-1);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VAROR(R4,0,BSTR,rbstr,I4,-1); VAROR(R4,0,BSTR,rbstr,I4,-1);
VAROR(R4,-1,BSTR,rbstr,I4,-1); VAROR(R4,-1,BSTR,rbstr,I4,-1);
SysFreeString(rbstr);
VARORCY(R4,-1,10000,I4,-1); VARORCY(R4,-1,10000,I4,-1);
VARORCY(R4,-1,0,I4,-1); VARORCY(R4,-1,0,I4,-1);
VARORCY(R4,0,0,I4,0); VARORCY(R4,0,0,I4,0);
...@@ -4500,9 +4567,11 @@ static void test_VarOr(void) ...@@ -4500,9 +4567,11 @@ static void test_VarOr(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VAROR(R8,0,BSTR,rbstr,I4,0); VAROR(R8,0,BSTR,rbstr,I4,0);
VAROR(R8,-1,BSTR,rbstr,I4,-1); VAROR(R8,-1,BSTR,rbstr,I4,-1);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VAROR(R8,0,BSTR,rbstr,I4,-1); VAROR(R8,0,BSTR,rbstr,I4,-1);
VAROR(R8,-1,BSTR,rbstr,I4,-1); VAROR(R8,-1,BSTR,rbstr,I4,-1);
SysFreeString(rbstr);
VARORCY(R8,-1,10000,I4,-1); VARORCY(R8,-1,10000,I4,-1);
VARORCY(R8,-1,0,I4,-1); VARORCY(R8,-1,0,I4,-1);
VARORCY(R8,0,0,I4,0); VARORCY(R8,0,0,I4,0);
...@@ -4527,9 +4596,11 @@ static void test_VarOr(void) ...@@ -4527,9 +4596,11 @@ static void test_VarOr(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VAROR(DATE,0,BSTR,rbstr,I4,0); VAROR(DATE,0,BSTR,rbstr,I4,0);
VAROR(DATE,-1,BSTR,rbstr,I4,-1); VAROR(DATE,-1,BSTR,rbstr,I4,-1);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VAROR(DATE,0,BSTR,rbstr,I4,-1); VAROR(DATE,0,BSTR,rbstr,I4,-1);
VAROR(DATE,-1,BSTR,rbstr,I4,-1); VAROR(DATE,-1,BSTR,rbstr,I4,-1);
SysFreeString(rbstr);
VARORCY(DATE,-1,10000,I4,-1); VARORCY(DATE,-1,10000,I4,-1);
VARORCY(DATE,-1,0,I4,-1); VARORCY(DATE,-1,0,I4,-1);
VARORCY(DATE,0,0,I4,0); VARORCY(DATE,0,0,I4,0);
...@@ -4551,9 +4622,11 @@ static void test_VarOr(void) ...@@ -4551,9 +4622,11 @@ static void test_VarOr(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VAROR(I8,0,BSTR,rbstr,I8,0); VAROR(I8,0,BSTR,rbstr,I8,0);
VAROR(I8,-1,BSTR,rbstr,I8,-1); VAROR(I8,-1,BSTR,rbstr,I8,-1);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VAROR(I8,0,BSTR,rbstr,I8,-1); VAROR(I8,0,BSTR,rbstr,I8,-1);
VAROR(I8,-1,BSTR,rbstr,I8,-1); VAROR(I8,-1,BSTR,rbstr,I8,-1);
SysFreeString(rbstr);
VARORCY(I8,-1,10000,I8,-1); VARORCY(I8,-1,10000,I8,-1);
VARORCY(I8,-1,0,I8,-1); VARORCY(I8,-1,0,I8,-1);
VARORCY(I8,0,0,I8,0); VARORCY(I8,0,0,I8,0);
...@@ -4570,9 +4643,11 @@ static void test_VarOr(void) ...@@ -4570,9 +4643,11 @@ static void test_VarOr(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VAROR(UI8,0,BSTR,rbstr,I4,0); VAROR(UI8,0,BSTR,rbstr,I4,0);
VAROR(UI8,0xffff,BSTR,rbstr,I4,0xffff); VAROR(UI8,0xffff,BSTR,rbstr,I4,0xffff);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VAROR(UI8,0,BSTR,rbstr,I4,-1); VAROR(UI8,0,BSTR,rbstr,I4,-1);
VAROR(UI8,0xffff,BSTR,rbstr,I4,-1); VAROR(UI8,0xffff,BSTR,rbstr,I4,-1);
SysFreeString(rbstr);
VARORCY(UI8,0xffff,10000,I4,0xffff); VARORCY(UI8,0xffff,10000,I4,0xffff);
VARORCY(UI8,0xffff,0,I4,0xffff); VARORCY(UI8,0xffff,0,I4,0xffff);
VARORCY(UI8,0,0,I4,0); VARORCY(UI8,0,0,I4,0);
...@@ -4587,9 +4662,11 @@ static void test_VarOr(void) ...@@ -4587,9 +4662,11 @@ static void test_VarOr(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VAROR(INT,0,BSTR,rbstr,I4,0); VAROR(INT,0,BSTR,rbstr,I4,0);
VAROR(INT,-1,BSTR,rbstr,I4,-1); VAROR(INT,-1,BSTR,rbstr,I4,-1);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VAROR(INT,0,BSTR,rbstr,I4,-1); VAROR(INT,0,BSTR,rbstr,I4,-1);
VAROR(INT,-1,BSTR,rbstr,I4,-1); VAROR(INT,-1,BSTR,rbstr,I4,-1);
SysFreeString(rbstr);
VARORCY(INT,-1,10000,I4,-1); VARORCY(INT,-1,10000,I4,-1);
VARORCY(INT,-1,0,I4,-1); VARORCY(INT,-1,0,I4,-1);
VARORCY(INT,0,0,I4,0); VARORCY(INT,0,0,I4,0);
...@@ -4600,9 +4677,11 @@ static void test_VarOr(void) ...@@ -4600,9 +4677,11 @@ static void test_VarOr(void)
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VAROR(UINT,0,BSTR,rbstr,I4,0); VAROR(UINT,0,BSTR,rbstr,I4,0);
VAROR(UINT,0xffff,BSTR,rbstr,I4,0xffff); VAROR(UINT,0xffff,BSTR,rbstr,I4,0xffff);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VAROR(UINT,0,BSTR,rbstr,I4,-1); VAROR(UINT,0,BSTR,rbstr,I4,-1);
VAROR(UINT,0xffff,BSTR,rbstr,I4,-1); VAROR(UINT,0xffff,BSTR,rbstr,I4,-1);
SysFreeString(rbstr);
VARORCY(UINT,0xffff,10000,I4,0xffff); VARORCY(UINT,0xffff,10000,I4,0xffff);
VARORCY(UINT,0xffff,0,I4,0xffff); VARORCY(UINT,0xffff,0,I4,0xffff);
VARORCY(UINT,0,0,I4,0); VARORCY(UINT,0,0,I4,0);
...@@ -4610,13 +4689,18 @@ static void test_VarOr(void) ...@@ -4610,13 +4689,18 @@ static void test_VarOr(void)
lbstr = SysAllocString(szFalse); lbstr = SysAllocString(szFalse);
rbstr = SysAllocString(szFalse); rbstr = SysAllocString(szFalse);
VAROR(BSTR,lbstr,BSTR,rbstr,BOOL,0); VAROR(BSTR,lbstr,BSTR,rbstr,BOOL,0);
SysFreeString(rbstr);
rbstr = SysAllocString(szTrue); rbstr = SysAllocString(szTrue);
VAROR(BSTR,lbstr,BSTR,rbstr,BOOL,VARIANT_TRUE); VAROR(BSTR,lbstr,BSTR,rbstr,BOOL,VARIANT_TRUE);
SysFreeString(lbstr);
lbstr = SysAllocString(szTrue); lbstr = SysAllocString(szTrue);
VAROR(BSTR,lbstr,BSTR,rbstr,BOOL,VARIANT_TRUE); VAROR(BSTR,lbstr,BSTR,rbstr,BOOL,VARIANT_TRUE);
VARORCY(BSTR,lbstr,10000,I4,-1); VARORCY(BSTR,lbstr,10000,I4,-1);
SysFreeString(lbstr);
lbstr = SysAllocString(szFalse); lbstr = SysAllocString(szFalse);
VARORCY(BSTR,lbstr,10000,I4,1); VARORCY(BSTR,lbstr,10000,I4,1);
SysFreeString(lbstr);
SysFreeString(rbstr);
} }
static HRESULT (WINAPI *pVarEqv)(LPVARIANT,LPVARIANT,LPVARIANT); static HRESULT (WINAPI *pVarEqv)(LPVARIANT,LPVARIANT,LPVARIANT);
...@@ -5049,6 +5133,8 @@ static void test_VarAdd(void) ...@@ -5049,6 +5133,8 @@ static void test_VarAdd(void)
leftvt, ExtraFlags[i], rightvt, ExtraFlags[i], resvt, hres, leftvt, ExtraFlags[i], rightvt, ExtraFlags[i], resvt, hres,
V_VT(&result)); V_VT(&result));
} }
/* Note, we don't clear left/right deliberately here */
VariantClear(&result);
} }
} }
} }
...@@ -5090,6 +5176,7 @@ static void test_VarAdd(void) ...@@ -5090,6 +5176,7 @@ static void test_VarAdd(void)
ok(hres == S_OK && V_VT(&result) == VT_BSTR, "VarAdd: expected coerced type VT_BSTR, got %s!\n", vtstr(V_VT(&result))); ok(hres == S_OK && V_VT(&result) == VT_BSTR, "VarAdd: expected coerced type VT_BSTR, got %s!\n", vtstr(V_VT(&result)));
hres = VarR8FromStr(V_BSTR(&result), 0, 0, &r); hres = VarR8FromStr(V_BSTR(&result), 0, 0, &r);
ok(hres == S_OK && EQ_DOUBLE(r, 1212), "VarAdd: BSTR value %f, expected %f\n", r, (double)1212); ok(hres == S_OK && EQ_DOUBLE(r, 1212), "VarAdd: BSTR value %f, expected %f\n", r, (double)1212);
VariantClear(&result);
/* Manuly test some VT_CY and VT_DECIMAL variants */ /* Manuly test some VT_CY and VT_DECIMAL variants */
V_VT(&cy) = VT_CY; V_VT(&cy) = VT_CY;
...@@ -5114,6 +5201,7 @@ static void test_VarAdd(void) ...@@ -5114,6 +5201,7 @@ static void test_VarAdd(void)
ok(hres == S_OK && V_VT(&result) == VT_DECIMAL, "VarAdd: expected coerced type VT_DECIMAL, got %s!\n", vtstr(V_VT(&result))); ok(hres == S_OK && V_VT(&result) == VT_DECIMAL, "VarAdd: expected coerced type VT_DECIMAL, got %s!\n", vtstr(V_VT(&result)));
hres = VarR8FromDec(&V_DECIMAL(&result), &r); hres = VarR8FromDec(&V_DECIMAL(&result), &r);
ok(hres == S_OK && EQ_DOUBLE(r, -15.2), "VarAdd: DECIMAL value %f, expected %f\n", r, (double)-15.2); ok(hres == S_OK && EQ_DOUBLE(r, -15.2), "VarAdd: DECIMAL value %f, expected %f\n", r, (double)-15.2);
VariantClear(&result);
SysFreeString(lbstr); SysFreeString(lbstr);
SysFreeString(rbstr); SysFreeString(rbstr);
...@@ -5380,6 +5468,7 @@ static void test_VarCat(void) ...@@ -5380,6 +5468,7 @@ static void test_VarCat(void)
VariantClear(&left); VariantClear(&left);
VariantClear(&right); VariantClear(&right);
VariantClear(&result); VariantClear(&result);
VariantClear(&expected);
/* Test concat dates with strings */ /* Test concat dates with strings */
V_VT(&left) = VT_BSTR; V_VT(&left) = VT_BSTR;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment