[PATCH] oledb32/tests: Add more GetConversionSize tests

Alistair Leslie-Hughes leslie_alistair at hotmail.com
Mon Nov 9 03:49:41 CST 2015


It appears that if the type being converted is of a fixed
size then it returns a constant value of 110.

Signed-off-by: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
---
 dlls/oledb32/tests/convert.c | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/dlls/oledb32/tests/convert.c b/dlls/oledb32/tests/convert.c
index a785457..54212e3 100644
--- a/dlls/oledb32/tests/convert.c
+++ b/dlls/oledb32/tests/convert.c
@@ -2546,6 +2546,7 @@ static void test_getconversionsize(void)
     VARIANT var;
     SAFEARRAY *psa = NULL;
     SAFEARRAYBOUND rgsabound[1];
+    const int fixed_dst_size = 110;
 
     /* same way as CanConvert fails here */
     dst_len = 0;
@@ -2625,6 +2626,31 @@ static void test_getconversionsize(void)
     V_I4(&var) = 4;
     hr = IDataConvert_GetConversionSize(convert, DBTYPE_VARIANT, DBTYPE_WSTR, &src_len, &dst_len, &var);
     ok(hr == S_OK, "got 0x%08x\n", hr);
+    todo_wine ok(dst_len == fixed_dst_size, "%ld\n", dst_len);
+    VariantClear(&var);
+
+    dst_len = 78;
+    V_VT(&var) = VT_NULL;
+    hr = IDataConvert_GetConversionSize(convert, DBTYPE_VARIANT, DBTYPE_WSTR, NULL, &dst_len, &var);
+    ok(hr == S_OK, "got 0x%08x\n", hr);
+    todo_wine ok(dst_len == fixed_dst_size, "%ld\n", dst_len);
+
+    dst_len = 0;
+    src_len = 20;
+    V_VT(&var) = VT_BSTR;
+    V_BSTR(&var) = SysAllocString(strW);
+    hr = IDataConvert_GetConversionSize(convert, DBTYPE_VARIANT, DBTYPE_STR, &src_len, &dst_len, &var);
+    ok(hr == S_OK, "got 0x%08x\n", hr);
+    ok(dst_len == 5, "%ld\n", dst_len);
+    VariantClear(&var);
+
+    dst_len = 0;
+    src_len = 20;
+    V_VT(&var) = VT_I4;
+    V_I4(&var) = 4;
+    hr = IDataConvert_GetConversionSize(convert, DBTYPE_VARIANT, DBTYPE_STR, &src_len, &dst_len, &var);
+    ok(hr == S_OK, "got 0x%08x\n", hr);
+    todo_wine ok(dst_len == fixed_dst_size, "%ld\n", dst_len);
     VariantClear(&var);
 
     dst_len = 0;
@@ -2641,6 +2667,7 @@ static void test_getconversionsize(void)
     V_VT(&var) = VT_NULL;
     hr = IDataConvert_GetConversionSize(convert, DBTYPE_VARIANT, DBTYPE_BYTES, &src_len, &dst_len, &var);
     ok(hr == S_OK, "got 0x%08x\n", hr);
+    todo_wine ok(dst_len == fixed_dst_size, "%ld\n", dst_len);
     VariantClear(&var);
 
     dst_len = 0;
-- 
1.9.1




More information about the wine-patches mailing list