Jacek Caban : jscript: Skip tests on too old jscript.dll.

Alexandre Julliard julliard at winehq.org
Fri Jan 22 08:26:53 CST 2010


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Jan 22 01:25:30 2010 +0100

jscript: Skip tests on too old jscript.dll.

---

 dlls/jscript/tests/activex.c |   32 +++++++++++++++++++++++++++++---
 1 files changed, 29 insertions(+), 3 deletions(-)

diff --git a/dlls/jscript/tests/activex.c b/dlls/jscript/tests/activex.c
index 4826910..ba3f8bd 100644
--- a/dlls/jscript/tests/activex.c
+++ b/dlls/jscript/tests/activex.c
@@ -720,6 +720,8 @@ static IActiveScriptParse *create_script(void)
     hres = CoCreateInstance(&CLSID_JScript, NULL, CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER,
             &IID_IActiveScript, (void**)&script);
     ok(hres == S_OK, "CoCreateInstance failed: %08x\n", hres);
+    if(FAILED(hres))
+        return NULL;
 
     set_safety_options((IUnknown*)script);
 
@@ -1058,13 +1060,37 @@ static BOOL register_activex(void)
     return TRUE;
 }
 
+static BOOL check_jscript(void)
+{
+    IActiveScriptParse *parser;
+    BSTR str;
+    HRESULT hres;
+
+    parser = create_script();
+    if(!parser)
+        return FALSE;
+
+    str = a2bstr("if(!('localeCompare' in String.prototype)) throw 1;");
+    hres = IActiveScriptParse64_ParseScriptText(parser, str, NULL, NULL, NULL, 0, 0, 0, NULL, NULL);
+    SysFreeString(str);
+    IUnknown_Release(parser);
+
+    return hres == S_OK;
+}
+
 START_TEST(activex)
 {
     CoInitialize(NULL);
-    register_activex();
 
-    test_ActiveXObject();
+    if(check_jscript()) {
+        register_activex();
+
+        test_ActiveXObject();
+
+        init_registry(FALSE);
+    }else {
+        win_skip("Broken engine, probably too old\n");
+    }
 
-    init_registry(FALSE);
     CoUninitialize();
 }




More information about the wine-cvs mailing list