Expand the COPYTEST macro to avoid trouble with 64-bit types.
authorAlexandre Julliard <julliard@winehq.org>
Fri, 17 Dec 2004 19:13:24 +0000 (19:13 +0000)
committerAlexandre Julliard <julliard@winehq.org>
Fri, 17 Dec 2004 19:13:24 +0000 (19:13 +0000)
dlls/oleaut32/tests/vartype.c

index f9224c727e73e746dd6d441d85bc29573ba96ae1..5df7a0d63f711876959f375e1b18f4b8868c7dce 100644 (file)
@@ -2339,10 +2339,30 @@ static void test_VarI8FromStr(void)
 
 static void test_VarI8Copy(void)
 {
+  HRESULT hres;
+  VARIANTARG vSrc, vDst;
+  LONGLONG in = 1;
+
   if (!HAVE_OLEAUT32_I8)
     return;
 
-  COPYTEST(1, VT_I8, ((int)V_I8(&vSrc)), ((int)V_I8(&vDst)), V_I8REF(&vSrc), V_I8REF(&vDst), "%d");
+  VariantInit(&vSrc);
+  VariantInit(&vDst);
+  V_VT(&vSrc) = VT_I8;
+  V_I8(&vSrc) = in;
+  hres = VariantCopy(&vDst, &vSrc);
+  ok(hres == S_OK && V_VT(&vDst) == VT_I8 && V_I8(&vDst) == in,
+     "copy hres 0x%lX, type %d, value (%x%08x) %x%08x\n",
+     hres, V_VT(&vDst), (UINT)(in >> 32), (UINT)in, (UINT)(V_I8(&vDst) >> 32), (UINT)V_I8(&vDst) );
+  V_VT(&vSrc) = VT_I8|VT_BYREF;
+  V_I8REF(&vSrc) = &in;
+  hres = VariantCopy(&vDst, &vSrc);
+  ok(hres == S_OK && V_VT(&vDst) == (VT_I8|VT_BYREF) && V_I8REF(&vDst) == &in,
+     "ref hres 0x%lX, type %d, ref (%p) %p\n", hres, V_VT(&vDst), &in, V_I8REF(&vDst));
+  hres = VariantCopyInd(&vDst, &vSrc);
+  ok(hres == S_OK && V_VT(&vDst) == VT_I8 && V_I8(&vDst) == in,
+     "copy hres 0x%lX, type %d, value (%x%08x) %x%08x\n",
+     hres, V_VT(&vDst), (UINT)(in >> 32), (UINT)in, (UINT)(V_I8(&vDst) >> 32), (UINT)V_I8(&vDst) );
 }
 
 static void test_VarI8ChangeTypeEx(void)
@@ -2573,11 +2593,30 @@ static void test_VarUI8FromStr(void)
 
 static void test_VarUI8Copy(void)
 {
+  HRESULT hres;
+  VARIANTARG vSrc, vDst;
+  ULONGLONG in = 1;
+
   if (!HAVE_OLEAUT32_I8)
     return;
 
-  COPYTEST(1, VT_UI8, ((unsigned)V_UI8(&vSrc)), ((unsigned)V_I8(&vDst)),
-           V_UI8REF(&vSrc), V_UI8REF(&vDst), "%u");
+  VariantInit(&vSrc);
+  VariantInit(&vDst);
+  V_VT(&vSrc) = VT_UI8;
+  V_UI8(&vSrc) = in;
+  hres = VariantCopy(&vDst, &vSrc);
+  ok(hres == S_OK && V_VT(&vDst) == VT_UI8 && V_UI8(&vDst) == in,
+     "copy hres 0x%lX, type %d, value (%x%08x) %x%08x\n",
+     hres, V_VT(&vDst), (UINT)(in >> 32), (UINT)in, (UINT)(V_UI8(&vDst) >> 32), (UINT)V_UI8(&vDst) );
+  V_VT(&vSrc) = VT_UI8|VT_BYREF;
+  V_UI8REF(&vSrc) = &in;
+  hres = VariantCopy(&vDst, &vSrc);
+  ok(hres == S_OK && V_VT(&vDst) == (VT_UI8|VT_BYREF) && V_UI8REF(&vDst) == &in,
+     "ref hres 0x%lX, type %d, ref (%p) %p\n", hres, V_VT(&vDst), &in, V_UI8REF(&vDst));
+  hres = VariantCopyInd(&vDst, &vSrc);
+  ok(hres == S_OK && V_VT(&vDst) == VT_UI8 && V_UI8(&vDst) == in,
+     "copy hres 0x%lX, type %d, value (%x%08x) %x%08x\n",
+     hres, V_VT(&vDst), (UINT)(in >> 32), (UINT)in, (UINT)(V_UI8(&vDst) >> 32), (UINT)V_UI8(&vDst) );
 }
 
 static void test_VarUI8ChangeTypeEx(void)