[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