Jacek Caban : wscript: Added tests using vbscript.
Alexandre Julliard
julliard at winehq.org
Wed Oct 19 14:05:25 CDT 2011
Module: wine
Branch: master
Commit: ec3d0e9b5cb339c6014c001c484b1fcfee60ed39
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ec3d0e9b5cb339c6014c001c484b1fcfee60ed39
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Oct 19 13:16:30 2011 +0200
wscript: Added tests using vbscript.
---
programs/wscript/tests/rsrc.rc | 3 +++
programs/wscript/tests/run.c | 20 ++++++++++++++++----
programs/wscript/tests/run.vbs | 30 ++++++++++++++++++++++++++++++
3 files changed, 49 insertions(+), 4 deletions(-)
diff --git a/programs/wscript/tests/rsrc.rc b/programs/wscript/tests/rsrc.rc
index b1df1c5..87e9a73 100644
--- a/programs/wscript/tests/rsrc.rc
+++ b/programs/wscript/tests/rsrc.rc
@@ -18,3 +18,6 @@
/* @makedep: run.js */
run.js TESTSCRIPT "run.js"
+
+/* @makedep: run.vbs */
+run.vbs TESTSCRIPT "run.vbs"
diff --git a/programs/wscript/tests/run.c b/programs/wscript/tests/run.c
index b7d3c3c..163be22 100644
--- a/programs/wscript/tests/run.c
+++ b/programs/wscript/tests/run.c
@@ -170,16 +170,28 @@ static HRESULT WINAPI Dispatch_Invoke(IDispatch *iface, DISPID dispIdMember, REF
WORD wFlags, DISPPARAMS *pdp, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
{
switch(dispIdMember) {
- case DISPID_TESTOBJ_OK:
+ case DISPID_TESTOBJ_OK: {
+ VARIANT *expr, *msg;
+
ok(wFlags == INVOKE_FUNC, "wFlags = %x\n", wFlags);
ok(pdp->cArgs == 2, "cArgs = %d\n", pdp->cArgs);
ok(!pdp->cNamedArgs, "cNamedArgs = %d\n", pdp->cNamedArgs);
- ok(V_VT(pdp->rgvarg) == VT_BSTR, "V_VT(psp->rgvargs) = %d\n", V_VT(pdp->rgvarg));
- ok(V_VT(pdp->rgvarg+1) == VT_BOOL, "V_VT(psp->rgvargs+1) = %d\n", V_VT(pdp->rgvarg));
- ok(V_BOOL(pdp->rgvarg+1), "%s: %s\n", script_name, wine_dbgstr_w(V_BSTR(pdp->rgvarg)));
+
+ expr = pdp->rgvarg+1;
+ if(V_VT(expr) == (VT_VARIANT|VT_BYREF))
+ expr = V_VARIANTREF(expr);
+
+ msg = pdp->rgvarg;
+ if(V_VT(msg) == (VT_VARIANT|VT_BYREF))
+ msg = V_VARIANTREF(msg);
+
+ ok(V_VT(msg) == VT_BSTR, "V_VT(psp->rgvargs) = %d\n", V_VT(msg));
+ ok(V_VT(expr) == VT_BOOL, "V_VT(psp->rgvargs+1) = %d\n", V_VT(expr));
+ ok(V_BOOL(expr), "%s: %s\n", script_name, wine_dbgstr_w(V_BSTR(msg)));
if(pVarResult)
V_VT(pVarResult) = VT_EMPTY;
break;
+ }
case DISPID_TESTOBJ_TRACE:
ok(wFlags == INVOKE_FUNC, "wFlags = %x\n", wFlags);
ok(pdp->cArgs == 1, "cArgs = %d\n", pdp->cArgs);
diff --git a/programs/wscript/tests/run.vbs b/programs/wscript/tests/run.vbs
new file mode 100644
index 0000000..785df78
--- /dev/null
+++ b/programs/wscript/tests/run.vbs
@@ -0,0 +1,30 @@
+'
+' Copyright 2011 Jacek Caban for CodeWeavers
+'
+' This library is free software; you can redistribute it and/or
+' modify it under the terms of the GNU Lesser General Public
+' License as published by the Free Software Foundation; either
+' version 2.1 of the License, or (at your option) any later version.
+'
+' This library is distributed in the hope that it will be useful,
+' but WITHOUT ANY WARRANTY; without even the implied warranty of
+' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+' Lesser General Public License for more details.
+'
+' You should have received a copy of the GNU Lesser General Public
+' License along with this library; if not, write to the Free Software
+' Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+'
+
+Option Explicit
+
+Dim winetest
+Set winetest = CreateObject("Wine.Test")
+
+Sub ok(expr, msg)
+ Call winetest.ok(expr, msg)
+End Sub
+
+Call ok(WScript is WSH, "WScript is not WSH")
+
+Call winetest.reportSuccess()
More information about the wine-cvs
mailing list