Commit a41c2280 authored by Paul Vriens's avatar Paul Vriens Committed by Alexandre Julliard

oleaut32/tests: Skip VarIdiv tests if there is no I8 and/or UI8 support.

parent 0dde222b
......@@ -7298,6 +7298,10 @@ static void test_VarIdiv(void)
{
SKIPTESTIDIV(leftvt);
/* Check if we need/have support for I8 and/or UI8 */
if ((leftvt == VT_I8 || leftvt == VT_UI8) && !HAVE_OLEAUT32_I8)
continue;
for (rightvt = 0; rightvt <= VT_BSTR_BLOB; rightvt++)
{
BOOL bFail = FALSE;
......@@ -7307,6 +7311,10 @@ static void test_VarIdiv(void)
if (ExtraFlags[i] == VT_BYREF)
continue;
/* Check if we need/have support for I8 and/or UI8 */
if ((rightvt == VT_I8 || rightvt == VT_UI8) && !HAVE_OLEAUT32_I8)
continue;
memset(&left, 0, sizeof(left));
memset(&right, 0, sizeof(right));
V_VT(&left) = leftvt | ExtraFlags[i];
......@@ -7423,8 +7431,11 @@ static void test_VarIdiv(void)
VARIDIV(EMPTY,0,UI1,1,I2,0);
VARIDIV(EMPTY,0,UI2,1,I4,0);
VARIDIV(EMPTY,0,UI4,1,I4,0);
if (HAVE_OLEAUT32_I8)
{
VARIDIV(EMPTY,0,I8,1,I8,0);
VARIDIV(EMPTY,0,UI8,1,I4,0);
}
VARIDIV(EMPTY,0,INT,1,I4,0);
VARIDIV(EMPTY,0,UINT,1,I4,0);
VARIDIV(NULL,0,EMPTY,0,NULL,0);
......@@ -7440,8 +7451,11 @@ static void test_VarIdiv(void)
VARIDIV(NULL,0,UI1,1,NULL,0);
VARIDIV(NULL,0,UI2,1,NULL,0);
VARIDIV(NULL,0,UI4,1,NULL,0);
if (HAVE_OLEAUT32_I8)
{
VARIDIV(NULL,0,I8,1,NULL,0);
VARIDIV(NULL,0,UI8,1,NULL,0);
}
VARIDIV(NULL,0,INT,1,NULL,0);
VARIDIV(NULL,0,UINT,1,NULL,0);
VARIDIV(I2,2,NULL,0,NULL,0);
......@@ -7456,8 +7470,11 @@ static void test_VarIdiv(void)
VARIDIV(I2,2,UI1,1,I2,2);
VARIDIV(I2,2,UI2,1,I4,2);
VARIDIV(I2,2,UI4,1,I4,2);
if (HAVE_OLEAUT32_I8)
{
VARIDIV(I2,2,I8,1,I8,2);
VARIDIV(I2,2,UI8,1,I4,2);
}
VARIDIV(I2,2,INT,1,I4,2);
VARIDIV(I2,2,UINT,1,I4,2);
VARIDIV(I4,2,NULL,0,NULL,0);
......@@ -7472,8 +7489,11 @@ static void test_VarIdiv(void)
VARIDIV(I4,2,UI1,1,I4,2);
VARIDIV(I4,2,UI2,1,I4,2);
VARIDIV(I4,2,UI4,1,I4,2);
if (HAVE_OLEAUT32_I8)
{
VARIDIV(I4,2,I8,1,I8,2);
VARIDIV(I4,2,UI8,1,I4,2);
}
VARIDIV(I4,2,INT,1,I4,2);
VARIDIV(I4,2,UINT,1,I4,2);
VARIDIV(R4,2.0f,NULL,0,NULL,0);
......@@ -7488,8 +7508,11 @@ static void test_VarIdiv(void)
VARIDIV(R4,2.0f,UI1,1,I4,2);
VARIDIV(R4,2.0f,UI2,1,I4,2);
VARIDIV(R4,2.0f,UI4,1,I4,2);
if (HAVE_OLEAUT32_I8)
{
VARIDIV(R4,2.0f,I8,1,I8,2);
VARIDIV(R4,2.0f,UI8,1,I4,2);
}
VARIDIV(R4,2.0f,INT,1,I4,2);
VARIDIV(R4,2.0f,UINT,1,I4,2);
VARIDIV(R8,2.0,NULL,0,NULL,0);
......@@ -7504,8 +7527,11 @@ static void test_VarIdiv(void)
VARIDIV(R8,2.0,UI1,1,I4,2);
VARIDIV(R8,2.0,UI2,1,I4,2);
VARIDIV(R8,2.0,UI4,1,I4,2);
if (HAVE_OLEAUT32_I8)
{
VARIDIV(R8,2.0,I8,1,I8,2);
VARIDIV(R8,2.0,UI8,1,I4,2);
}
VARIDIV(R8,2.0,INT,1,I4,2);
VARIDIV(R8,2.0,UINT,1,I4,2);
VARIDIV(DATE,2,NULL,0,NULL,0);
......@@ -7520,8 +7546,11 @@ static void test_VarIdiv(void)
VARIDIV(DATE,2,UI1,1,I4,2);
VARIDIV(DATE,2,UI2,1,I4,2);
VARIDIV(DATE,2,UI4,1,I4,2);
if (HAVE_OLEAUT32_I8)
{
VARIDIV(DATE,2,I8,1,I8,2);
VARIDIV(DATE,2,UI8,1,I4,2);
}
VARIDIV(DATE,2,INT,1,I4,2);
VARIDIV(DATE,2,UINT,1,I4,2);
VARIDIV(BSTR,num2_str,NULL,0,NULL,0);
......@@ -7536,8 +7565,11 @@ static void test_VarIdiv(void)
VARIDIV(BSTR,num2_str,UI1,1,I4,2);
VARIDIV(BSTR,num2_str,UI2,1,I4,2);
VARIDIV(BSTR,num2_str,UI4,1,I4,2);
if (HAVE_OLEAUT32_I8)
{
VARIDIV(BSTR,num2_str,I8,1,I8,2);
VARIDIV(BSTR,num2_str,UI8,1,I4,2);
}
VARIDIV(BSTR,num2_str,INT,1,I4,2);
VARIDIV(BSTR,num2_str,UINT,1,I4,2);
VARIDIV(BOOL,VARIANT_TRUE,NULL,0,NULL,0);
......@@ -7552,8 +7584,11 @@ static void test_VarIdiv(void)
VARIDIV(BOOL,VARIANT_TRUE,UI1,1,I2,-1);
VARIDIV(BOOL,VARIANT_TRUE,UI2,1,I4,-1);
VARIDIV(BOOL,VARIANT_TRUE,UI4,1,I4,-1);
if (HAVE_OLEAUT32_I8)
{
VARIDIV(BOOL,VARIANT_TRUE,I8,1,I8,-1);
VARIDIV(BOOL,VARIANT_TRUE,UI8,1,I4,-1);
}
VARIDIV(BOOL,VARIANT_TRUE,INT,1,I4,-1);
VARIDIV(BOOL,VARIANT_TRUE,UINT,1,I4,-1);
VARIDIV(I1,2,NULL,0,NULL,0);
......@@ -7568,8 +7603,11 @@ static void test_VarIdiv(void)
VARIDIV(I1,2,UI1,1,I4,2);
VARIDIV(I1,2,UI2,1,I4,2);
VARIDIV(I1,2,UI4,1,I4,2);
if (HAVE_OLEAUT32_I8)
{
VARIDIV(I1,2,I8,1,I8,2);
VARIDIV(I1,2,UI8,1,I4,2);
}
VARIDIV(I1,2,INT,1,I4,2);
VARIDIV(I1,2,UINT,1,I4,2);
VARIDIV(UI1,2,NULL,0,NULL,0);
......@@ -7584,8 +7622,11 @@ static void test_VarIdiv(void)
VARIDIV(UI1,2,UI1,1,UI1,2);
VARIDIV(UI1,2,UI2,1,I4,2);
VARIDIV(UI1,2,UI4,1,I4,2);
if (HAVE_OLEAUT32_I8)
{
VARIDIV(UI1,2,I8,1,I8,2);
VARIDIV(UI1,2,UI8,1,I4,2);
}
VARIDIV(UI1,2,INT,1,I4,2);
VARIDIV(UI1,2,UINT,1,I4,2);
VARIDIV(UI2,2,NULL,0,NULL,0);
......@@ -7600,8 +7641,11 @@ static void test_VarIdiv(void)
VARIDIV(UI2,2,UI1,1,I4,2);
VARIDIV(UI2,2,UI2,1,I4,2);
VARIDIV(UI2,2,UI4,1,I4,2);
if (HAVE_OLEAUT32_I8)
{
VARIDIV(UI2,2,I8,1,I8,2);
VARIDIV(UI2,2,UI8,1,I4,2);
}
VARIDIV(UI2,2,INT,1,I4,2);
VARIDIV(UI2,2,UINT,1,I4,2);
VARIDIV(UI4,2,NULL,0,NULL,0);
......@@ -7616,10 +7660,15 @@ static void test_VarIdiv(void)
VARIDIV(UI4,2,UI1,1,I4,2);
VARIDIV(UI4,2,UI2,1,I4,2);
VARIDIV(UI4,2,UI4,1,I4,2);
if (HAVE_OLEAUT32_I8)
{
VARIDIV(UI4,2,I8,1,I8,2);
VARIDIV(UI4,2,UI8,1,I4,2);
}
VARIDIV(UI4,2,INT,1,I4,2);
VARIDIV(UI4,2,UINT,1,I4,2);
if (HAVE_OLEAUT32_I8)
{
VARIDIV(I8,2,NULL,0,NULL,0);
VARIDIV(I8,2,I2,1,I8,2);
VARIDIV(I8,2,I4,1,I8,2);
......@@ -7651,6 +7700,7 @@ static void test_VarIdiv(void)
VARIDIV(UI8,2,UI8,1,I4,2);
VARIDIV(UI8,2,INT,1,I4,2);
VARIDIV(UI8,2,UINT,1,I4,2);
}
VARIDIV(INT,2,NULL,0,NULL,0);
VARIDIV(INT,2,I2,1,I4,2);
VARIDIV(INT,2,I4,1,I4,2);
......@@ -7663,7 +7713,10 @@ static void test_VarIdiv(void)
VARIDIV(INT,2,UI1,1,I4,2);
VARIDIV(INT,2,UI2,1,I4,2);
VARIDIV(INT,2,UI4,1,I4,2);
if (HAVE_OLEAUT32_I8)
{
VARIDIV(INT,2,UI8,1,I4,2);
}
VARIDIV(INT,2,INT,1,I4,2);
VARIDIV(INT,2,UINT,1,I4,2);
VARIDIV(UINT,2,NULL,0,NULL,0);
......@@ -7678,8 +7731,11 @@ static void test_VarIdiv(void)
VARIDIV(UINT,2,UI1,1,I4,2);
VARIDIV(UINT,2,UI2,1,I4,2);
VARIDIV(UINT,2,UI4,1,I4,2);
if (HAVE_OLEAUT32_I8)
{
VARIDIV(UINT,2,I8,1,I8,2);
VARIDIV(UINT,2,UI8,1,I4,2);
}
VARIDIV(UINT,2,INT,1,I4,2);
VARIDIV(UINT,2,UINT,1,I4,2);
......@@ -7704,6 +7760,8 @@ static void test_VarIdiv(void)
ok(hres == S_OK && V_I4(&result) == 1,
"VARIDIV: CY value %d, expected %d\n", V_I4(&result), 1);
if (HAVE_OLEAUT32_I8)
{
hres = VarIdiv(&cy, &right, &result);
ok(hres == S_OK && V_VT(&result) == VT_I8,
"VARIDIV: expected coerced hres 0x%X type VT_I8, got hres 0x%X type %s!\n",
......@@ -7711,6 +7769,7 @@ static void test_VarIdiv(void)
ok(hres == S_OK && V_I8(&result) == 5000,
"VARIDIV: CY value 0x%x%08x, expected 0x%x\n",
(DWORD)(V_I8(&result) >>32), (DWORD)V_I8(&result), 5000);
}
hres = VarIdiv(&left, &cy, &result);
ok(hres == S_OK && V_VT(&result) == VT_I4,
......@@ -7733,6 +7792,8 @@ static void test_VarIdiv(void)
ok(hres == S_OK && V_I4(&result) == 1,
"VARIDIV: DECIMAL value %d, expected %d\n", V_I4(&result), 1);
if (HAVE_OLEAUT32_I8)
{
hres = VarIdiv(&dec, &right, &result);
ok(hres == S_OK && V_VT(&result) == VT_I8,
"VARIDIV: expected coerced hres 0x%X type VT_I8, got hres 0x%X type %s!\n",
......@@ -7740,6 +7801,7 @@ static void test_VarIdiv(void)
ok(hres == S_OK && V_I8(&result) == 1,
"VARIDIV: DECIMAL value 0x%x%08x, expected %d\n",
(DWORD)(V_I8(&result) >> 32), (DWORD)V_I8(&result), 1);
}
/* Check for division by zero */
V_VT(&left) = VT_INT;
......
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