Dmitry Timoshkov : oleaut32/tests: Add parameter checking to the typelib varargs marshalling test.

Alexandre Julliard julliard at wine.codeweavers.com
Mon Sep 7 09:20:13 CDT 2015


Module: wine
Branch: master
Commit: f05930f0ce3785369031ba823989d80eb0715151
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=f05930f0ce3785369031ba823989d80eb0715151

Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date:   Mon Sep  7 12:30:19 2015 +0800

oleaut32/tests: Add parameter checking to the typelib varargs marshalling test.

---

 dlls/oleaut32/tests/tmarshal.c | 30 +++++++++++++++++++++++++++++-
 1 file changed, 29 insertions(+), 1 deletion(-)

diff --git a/dlls/oleaut32/tests/tmarshal.c b/dlls/oleaut32/tests/tmarshal.c
index 1893534..2d6e5f2 100644
--- a/dlls/oleaut32/tests/tmarshal.c
+++ b/dlls/oleaut32/tests/tmarshal.c
@@ -842,7 +842,35 @@ static HRESULT WINAPI Widget_neg_restrict(IWidget* iface, INT *i)
 static HRESULT WINAPI Widget_VarArg_Run(
     IWidget *iface, BSTR name, SAFEARRAY *params, VARIANT *result)
 {
+    static const WCHAR catW[] = { 'C','a','t',0 };
+    static const WCHAR supermanW[] = { 'S','u','p','e','r','m','a','n',0 };
+    LONG bound;
+    VARIANT *var;
+    BSTR bstr;
+    HRESULT hr;
+
     trace("VarArg_Run(%p,%p,%p)\n", name, params, result);
+
+    ok(!lstrcmpW(name, catW), "got %s\n", wine_dbgstr_w(name));
+
+    hr = SafeArrayGetLBound(params, 1, &bound);
+    ok(hr == S_OK, "SafeArrayGetLBound error %#x\n", hr);
+    ok(bound == 0, "expected 0, got %d\n", bound);
+
+    hr = SafeArrayGetUBound(params, 1, &bound);
+    ok(hr == S_OK, "SafeArrayGetUBound error %#x\n", hr);
+    ok(bound == 0, "expected 0, got %d\n", bound);
+
+    hr = SafeArrayAccessData(params, (void **)&var);
+    ok(hr == S_OK, "SafeArrayAccessData failed with %x\n", hr);
+
+    ok(V_VT(&var[0]) == VT_BSTR, "expected VT_BSTR, got %d\n", V_VT(&var[0]));
+    bstr = V_BSTR(&var[0]);
+    ok(!lstrcmpW(bstr, supermanW), "got %s\n", wine_dbgstr_w(bstr));
+
+    hr = SafeArrayUnaccessData(params);
+    ok(hr == S_OK, "SafeArrayUnaccessData error %#x\n", hr);
+
     return S_OK;
 }
 
@@ -1516,7 +1544,7 @@ static void test_typelibmarshal(void)
     V_BSTR(&vararg[1]) = SysAllocString(szCat);
     VariantInit(&vararg[0]);
     V_VT(&vararg[0]) = VT_BSTR;
-    V_BSTR(&vararg[0]) = SysAllocString(NULL);
+    V_BSTR(&vararg[0]) = SysAllocString(szSuperman);
     dispparams.cNamedArgs = 0;
     dispparams.cArgs = 2;
     dispparams.rgdispidNamedArgs = NULL;




More information about the wine-cvs mailing list